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

   ### Task List
   
   - [x] Steps to reproduce provided
   - [x] Stacktrace (if present) provided
   - [x] Example that reproduces the problem uploaded to Github
   - [x] Full description of the issue provided (see below)
   
   When using Inheritance from an abstract base class as an embedded object, 
the `list` criteria query throws `java.lang.InstantiationException`.
   
   ### Steps to Reproduce
   
   1. Create a Grails 4 application.
   2. Remove hibernate dependencies and add the Grails MongoDB plugin.
   3. Create an abstract base domain class `Address` as:
   ```
   abstract class Address {
       String street
   }
   ```
   4. Create another domain class `HomeAddress.groovy` which implements 
`Address` as:
   ```
   class HomeAddress extends Address {
   
       String type = "home"
   }
   ```
   5. Create a domain class `Patient.groovy` which as embedded address as:
   ```
   class Patient {
   
       Address address
   
       static embedded = ['address']
   }
   ```
   6. Try to access list of all patient using following query:
   ```
   Patient.list()
   ```
   
   ### Expected Behaviour
   
   The query `Patient.list()` should return all the patients with embedded 
address information without any error.
   ### Actual Behaviour
   
   The following exception is thrown:
   ```
   Caused by: java.lang.reflect.UndeclaredThrowableException
        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.GormStaticApi.list(GormStaticApi.groovy:607)
        at 
org.grails.datastore.gorm.GormEntity$Trait$Helper.list(GormEntity.groovy:682)
        ... 1 more
   Caused by: java.lang.InstantiationException
        at 
org.grails.datastore.bson.codecs.BsonPersistentEntityCodec.decode(BsonPersistentEntityCodec.groovy:76)
        at 
org.grails.datastore.bson.codecs.decoders.EmbeddedDecoder.decode(EmbeddedDecoder.groovy:27)
        at 
org.grails.datastore.bson.codecs.BsonPersistentEntityCodec.decode(BsonPersistentEntityCodec.groovy:121)
        at 
com.mongodb.operation.CommandResultArrayCodec.decode(CommandResultArrayCodec.java:52)
        at 
com.mongodb.operation.CommandResultDocumentCodec.readValue(CommandResultDocumentCodec.java:60)
        at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:84)
        at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:41)
        at org.bson.codecs.configuration.LazyCodec.decode(LazyCodec.java:47)
        at 
org.bson.codecs.BsonDocumentCodec.readValue(BsonDocumentCodec.java:101)
        at 
com.mongodb.operation.CommandResultDocumentCodec.readValue(CommandResultDocumentCodec.java:63)
        at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:84)
        at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:41)
        at 
com.mongodb.internal.connection.ReplyMessage.<init>(ReplyMessage.java:48)
        at 
com.mongodb.internal.connection.InternalStreamConnection.getCommandResult(InternalStreamConnection.java:393)
        at 
com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:299)
        at 
com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255)
        at 
com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99)
        at 
com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:444)
        at 
com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72)
        at 
com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:200)
        at 
com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269)
        at 
com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131)
        at 
com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:123)
        at 
com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:242)
        at 
com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:233)
        at 
com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:136)
        at com.mongodb.operation.FindOperation$1.call(FindOperation.java:701)
        at com.mongodb.operation.FindOperation$1.call(FindOperation.java:695)
        at 
com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:462)
        at 
com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:406)
        at com.mongodb.operation.FindOperation.execute(FindOperation.java:695)
        at com.mongodb.operation.FindOperation.execute(FindOperation.java:83)
        at 
com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:179)
        at 
com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:132)
        at 
com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:86)
        at 
org.grails.datastore.mapping.mongo.query.MongoQuery.executeQuery(MongoQuery.java:527)
        at 
org.grails.datastore.mapping.mongo.query.MongoQuery.executeQuery(MongoQuery.java:464)
        at org.grails.datastore.mapping.query.Query.doList(Query.java:589)
        at org.grails.datastore.mapping.query.Query.list(Query.java:568)
        at 
org.grails.datastore.gorm.GormStaticApi.list_closure20(GormStaticApi.groovy:608)
        at groovy.lang.Closure.call(Closure.java:405)
        ... 5 more
   
   ```
   
   ### Environment Information
   
   - **Operating System**: macOS
   - **Grails Version:** 4.0.3
   - **JDK Version:** 1.8.hs-adpt
   - **Container Version (If Applicable):** MongoDB 3 Docker Image
   
   ### Example Application
   
   - https://github.com/puneetbehl/mongodbdemo/tree/abstractEmbeddedMongo
   


-- 
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