Giter VIP home page Giter VIP logo

grails-data-mapping's Introduction

GORM - Grails Object Relational Mapping

Maven Central Java CI

Grails is a framework used to build web applications with the Groovy programming language. This project provides the plumbings for the GORM API both for Hibernate and for new implementations of GORM on top of NoSQL datastores.

Getting Started

For further information see the dedicated GORM website:

License

Grails and Groovy are licensed under the terms of the Apache License, Version 2.0.

grails-data-mapping's People

Contributors

beckje01 avatar bluesliverx avatar bobbywarner avatar burtbeckwith avatar dependabot-preview[bot] avatar dependabot[bot] avatar dpcasady avatar erawat avatar glaforge avatar gpsantos avatar graemerocher avatar ilopmar avatar jameskleeh avatar jbrisbin avatar jniewerth avatar lhotari avatar longwa avatar matrei avatar paralk avatar paulk-asert avatar puneetbehl avatar renovate-bot avatar renovate[bot] avatar rstepanenko avatar sarmbruster avatar sdelamo avatar tednaleid avatar tomwidmer avatar yamkazu avatar zyro23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grails-data-mapping's Issues

GPMONGODB-3: Exception when saving list of embedded objects

Original Reporter: jcyboski
Environment: OSX 10.6.6 Java: 1.6.0_22 Groovy: 1.7.6 Grails: 1.3.6 Plugins: tomcat-1.3.6, mongodb-1.0-M4 (no hibernate plugin)
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-3

Trying to save a list of embedded objects (non-basic types). Using a single embedded document works fine.

Summary: Domain classes Person, and Address. A person can have a list of addresses.
When using an Array such as Address[] otherAddresses I receive NPE:
{code}
java.lang.NullPointerException
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:139)
at org.grails.datastore.gorm.GormInstanceApi$save$0.callCurrent(Unknown Source)
at org.grails.datastore.gorm.GormInstanceApi$save$0.callCurrent(Unknown Source)
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:87)
at org.grails.datastore.gorm.GormEnhancer$1.call(GormEnhancer.groovy:93)
at emb.PersonController$_closure1.doCall(PersonController.groovy:26)
at emb.PersonController$_closure1.doCall(PersonController.groovy)
at java.lang.Thread.run(Thread.java:680)
{code}
When using an List such as List

otherAddresses: I recieve IllegalArgumentException:
{code}
java.lang.IllegalArgumentException: can't serialize class emb.Address
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:205)
at org.bson.BSONEncoder.putIterable(BSONEncoder.java:230)
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:179)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:121)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:67)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:215)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:180)
at java.lang.Thread.run(Thread.java:680)
{code}

Below are the entire Domain classes and a Controller I used for testing.

Address.groovy:
{code}
package emb

class Address {
String address1

String city
String state

static constraints = {
}
}
{code}

Person.groovy
{code}
package emb

class Person {
Long id

String firstName
String lastName
Integer age

Address homeAddress
Address workAddress

List

otherAddresses
// Address[] otherAddresses

static embedded = ['homeAddress', 'workAddress', 'otherAddresses']

static constraints = {
homeAddress(nullable: true, blank: true)
workAddress(nullable: true, blank: true)
otherAddresses(nullable: true)
}
}
{code}

PersonController.groovy
{code}
package emb

class PersonController {

def index = {

  Person person = new Person(firstName: "Homer", lastName: "Simpson", age: 33)

  person.homeAddress = new Address(address1:" one main st.",
                               city: "springfield", state: "MA")

  person.workAddress = new Address(address1:"one way blvd.",
          city: "new york", state: "NY")

  Address addr1 = new Address(address1:"2222 6th ave.",
          city: "new york", state: "NY")

  Address addr2 = new Address(address1:"5555 6th ave.",
          city: "new york", state: "NY")

  person.otherAddresses = [addr1, addr2]


  if(person.validate() && !person.hasErrors()){

    person.save()
    [message: "Saved"]

  }else{
    [message: "Error", errors: [person.errors]]
  }


}

}
{code}

GPMONGODB-26: Dynamic finders fails with NPE

Original Reporter: alari
Environment: M5, 1.3.7
Version: 1.0.0-M5
Migrated From: http://jira.grails.org/browse/GPMONGODB-26

  1. grails create-app
  2. remove hibernate, add mongo
  3. create any domain with a String property
  4. try to call ProbeDomain.findByTest("%") in tests
    5.

N/A
java.lang.NullPointerException
at org.grails.datastore.gorm.finders.FindByFinder.invokeQuery(FindByFinder.java:52)
at org.grails.datastore.gorm.finders.FindByFinder$1.doInSession(FindByFinder.java:44)
at org.grails.datastore.gorm.finders.AbstractFinder.execute(AbstractFinder.java:41)
at org.grails.datastore.gorm.finders.FindByFinder.doInvokeInternal(FindByFinder.java:41)
at org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:137)
at org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:284)
at org.grails.datastore.gorm.finders.FinderMethod$invoke.call(Unknown Source)
at org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:92)
at org.grails.datastore.gorm.StaticMethodInvokingClosure.call(GormEnhancer.groovy:245)
at mongo.m5.ProbeTests.testFind(ProbeTests.groovy:15)
at TestApp$_run_closure4.doCall(TestApp:271)
at TestApp$_run_closure4.call(TestApp)
at TestApp$_run_closure2.doCall(TestApp:228)
at TestApp$_run_closure1_closure21.doCall(TestApp:187)
at TestApp$_run_closure1.doCall(TestApp:174)
at TestApp$_run_closure1.doCall(TestApp.groovy:82)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)

It's not the only NPE I've cought, using this (clear) test or old tests which I wrote several monthes ago waiting for Mongo plugin to be production-ready.

GPMONGODB-5: Cannot run tests with mongodb 1.0-M3

Original Reporter: alari
Environment: Win7, Grails 1.3.6, mongodb plugin 1.0-M3
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-5

grails create-app mongo
cd mongo
grails uninstall-plugin hibernate
grails install-plugin mongodb
grails test-app

displays error after generating output:

Tests PASSED - view reports in target\test-reports
Error executing script TestApp: No such property: MongoOptionsFactoryBean for cl
ass: MongodbGrailsPlugin
No such property: MongoOptionsFactoryBean for class: MongodbGrailsPlugin
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:387)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Caused by: groovy.lang.MissingPropertyException: No such property: MongoOptionsF
actoryBean for class: MongodbGrailsPlugin
at MongodbGrailsPlugin$_closure1.doCall(MongodbGrailsPlugin.groovy:71)
at MongodbGrailsPlugin$_closure1.doCall(MongodbGrailsPlugin.groovy)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:
723)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:573)
at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:519)
at TestApp$_run_closure2_closure14.doCall(TestApp:102)
at TestApp$_run_closure2_closure14.doCall(TestApp)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:2
80)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at TestApp$_run_closure2.doCall(TestApp:94)
at TestApp$_run_closure6.doCall(TestApp:152)
at TestApp$_run_closure9.doCall(TestApp:314)
at TestApp$_run_closure9.doCall(TestApp)
at TestApp$_run_closure1_closure21.doCall(TestApp:184)
at TestApp$_run_closure1.doCall(TestApp:174)
at TestApp$_run_closure1.doCall(TestApp.groovy:82)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
... 10 more
--- Nested Exception ---
groovy.lang.MissingPropertyException: No such property: MongoOptionsFactoryBean
for class: MongodbGrailsPlugin
at MongodbGrailsPlugin$_closure1.doCall(MongodbGrailsPlugin.groovy:71)
at MongodbGrailsPlugin$_closure1.doCall(MongodbGrailsPlugin.groovy)
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:
723)
at grails.spring.BeanBuilder.beans(BeanBuilder.java:573)
at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:519)
at TestApp$_run_closure2_closure14.doCall(TestApp:102)
at TestApp$_run_closure2_closure14.doCall(TestApp)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:2
80)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at TestApp$_run_closure2.doCall(TestApp:94)
at TestApp$_run_closure6.doCall(TestApp:152)
at TestApp$_run_closure9.doCall(TestApp:314)
at TestApp$_run_closure9.doCall(TestApp)
at TestApp$_run_closure1_closure21.doCall(TestApp:184)
at TestApp$_run_closure1.doCall(TestApp:174)
at TestApp$_run_closure1.doCall(TestApp.groovy:82)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Error executing script TestApp: No such property: MongoOptionsFactoryBean for cl
ass: MongodbGrailsPlugin

GPMONGODB-30: .save() fails with NPE after Domain.get(new ObjectId(params.id)) is used and if "version" field is missing

Original Reporter: oct
Environment: mongodb 1.8.1, linux, 1.0.0-M5, grails 1.3.7
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-30

It happens if I use .get() to create the instance and the mongo document is missing "version" field. It's missing because I've upgraded to M5 and already had the collection...

It works fine though if instead of .get(new ObjectId(params.id)) I use .findById(new ObjectId(params.id))

To get by this collection should be updated by adding version:0 field.

{code}
2011-04-19 20:40:13,799 [http-8080-1] ERROR errors.GrailsExceptionResolver - Exception occurred when processing request: [POST] /page/create - parameters:
id: 4d66c1f5c9b62d1d123921e8
body: body
enabled: on
title: terms
_action_update: Save page
_enabled:
url: terms
Stacktrace follows:
java.lang.NullPointerException
at org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.groovy:169)
at org.grails.datastore.gorm.GormInstanceApi.this$dist$invoke$4(GormInstanceApi.groovy)
at org.grails.datastore.gorm.GormInstanceApi$4.methodMissing(GormInstanceApi.groovy)
at org.grails.datastore.gorm.GormInstanceApi$4.doInSession(GormInstanceApi.groovy:143)
at org.grails.datastore.gorm.SessionCallback$doInSession.call(Unknown Source)
at org.grails.datastore.gorm.SessionCallback$doInSession.call(Unknown Source)
at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:37)
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:141)
at org.grails.datastore.gorm.InstanceMethodInvokingClosure.call(GormEnhancer.groovy:219)
at me.yeay.PageController$_closure7.doCall(PageController.groovy:62)
at me.yeay.PageController$_closure7.doCall(PageController.groovy)
at java.lang.Thread.run(Thread.java:662)

//=======================================================================

import java.util.Date

import org.bson.types.ObjectId

class Page {
ObjectId id

String title
String body
String url

Date dateCreated
Date dateUpdated
String createdBy

Boolean enabled = true

static mapWith = "mongo"

static constraints = {
    title(blank:false)
    url(blank:false)
    dateUpdated(nullable:true)
    body(nullable:true)
    createdBy(blank:false)
}

static mapping = {
    url index:true, indexAttributes: [unique:true, dropDups:true]
}

}

//=================================================================================
def update = {
def pageInstance = Page.get(new ObjectId(params.id))
if (pageInstance) {
pageInstance.properties = params
pageInstance.dateUpdated = new Date()

        if (!pageInstance.hasErrors() && pageInstance.save(flush: true)) {  // <===== line 62, fails here
            flash.message = "${message(code: 'page.saved')}"
            redirect(action: "list")
        } else {
            render(view:'form', model:[page: pageInstance, nextAction:'update'])
        }
    } else {
        flash.message = "${message(code: 'page.not.found')}"
        redirect(action: "list")
    }
}

{code}

GPMONGODB-16: Mongo Plugin ConnectionNotFoundException Thrown when calling from BootStrap

Original Reporter: jnusaira
Environment: all
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-16

n our application I get this in many spots, random sometimes calling from a controller to a service.
More annoyingly we have the Quartz Plugin and when it calls the service to run we get it there. Ironically its only in the dynamic method doing something like Domain.collect.findOne() will work.

I did get this issue to replicate when trying to save in the Bootstrap, so hopefully fix it there could fix it everywhere?

So unzip and start it up and it will fail in startup.

GPMONGODB-13: Read-only properties doesn't work

Original Reporter: alari
Environment: Win7, 1.3.6, mongodb 1.0-M2
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-13

class User {
ObjectId id
Set getAuthorities() {
UserRole.findAllByUser(this).collect { it.role } as Set
}
}

org.springframework.beans.NotWritablePropertyException: Invalid property 'author
ities' of bean class [mir.User]: Bean property 'authorities' is not writable or
has an invalid setter method. Does the parameter type of the setter match the re
turn type of the getter?

GPMONGODB-4: Several spring-data-mongodb implementations in WAR

Original Reporter: alari
Environment: Debian, Grails 1.3.6, Tomcat 7, grails-mongodb 1.0-M2
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-4

grails create-app test-mongo
cd test-mongo
grails uninstall-plugin hibernate
grails install-plugin mongodb 1.0-M2
grails prod war
sudo mv target/test-mongo-0.1.war ~tomcat/webapps/test/ROOT.war
ls -la ~tomcat/webapps/test/ROOT/WEB-INF/lib

...

spring-data-mongodb-1.0.0.BUILD-SNAPSHOT.jar
spring-data-mongodb-1.0.0.M1.jar

...

Starting an application failed.

GRAILS-5208: Discriminator used in table-per-subclass not implemented

Original Reporter: frankly.watson
Environment: Linux
Version: 1.2-M3
Migrated From: http://jira.grails.org/browse/GRAILS-5208

I have spent quite a time trying to get a discriminator applied to a table-per-subclass hierarchy using GORM domain objects, but nothing appears to work.

Judging by Hibernate docs (http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html#inheritance-tablepersubclass-discriminator) this should be possible

My example classes, and in comments my various attempts (the documentation on how to achieve this does not appear up to date either - http://jira.codehaus.org/browse/GRAILS-5168)

package foo

class Parent {

String name
int counter

static mapping = {
    tablePerHierarchy false // also tried to replace with 'tablePerSubclass true'

    //(1) discriminator column: [name: "product_type", sqlType: "varchar"], value: "parent"
    //(2) discriminator column: "product_type", value: "parent"
    //(3) discriminator value: "parent"
    discriminator "parent"
}

static constraints = {
}

}

and

package foo

class Child extends Parent {

String color

static mapping = {
    discriminator "child"
}

}

Some degree of discriminator is supported by commenting out

 tablePerHierarchy false

In this instance I seed a single PARENT table and a column called CLASS, the default discriminator

However in table-per-subclass i never see either a CLASS column, or otherwise any custom column name I have specified.

The following Bug (FIXED in 1.1RC1) suggests that I should be able to specify a user-defined discriminator value - http://jira.codehaus.org/browse/GRAILS-3913 - although it makes no comment on whether this is only applicable to tablePerHieararchy. I do see my custom discriminator column name appear in table-per-hierarchy, not in TPS-Class tho.

The following also suggests there is something working, although not completely... http://jira.codehaus.org/browse/GRAILS-4487

I am suposing that logic i have so far uncovered which does work is the conclusion of this discussion - http://www.nabble.com/Hierarchy---Discriminator-td19615294.html

Based on the above, and others observing the same since May 09, http://www.pubbs.net/grails/200905/68819/, leads me to conclude that support is only partially there; it is for tablePerHierarchy but not at all for tablePerSubclass

GPMONGODB-39: Scaffolding incorrectly shows JSON of 1:1 association for a hasMany association of the same type

Original Reporter: wangjammer5
Environment: Not Specified
Version: 1.0.0-M5
Migrated From: http://jira.grails.org/browse/GPMONGODB-39

I have a domain class like this:

{code}
class Book {
Author primaryAuthor

static hasMany = [authors:Author]
}
{code}

When a Book has a primaryAuthor set but no elements in authors, and you view this book in scaffolding, it shows "authors" as having 1 element, and renders the JSON of the primaryAuthor.

Very strange...

GPMONGODB-6: first level session cache lookups fail when using String IDs instead of org.bson.types.ObjectId

Original Reporter: dan_lynn
Environment: Not Specified
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-6

To reproduce, create a domain class, use a String for the id field and run-app. Calls to instance.getDbo() will return null since the AbstractSession.firstLevelEntryCache map uses org.bson.types.ObjectId for its keys.

{code}
class MyController {

def lookup {
    def person = Person.findByName('Fred')
    assert person.getDbo()  // fails
}

}
{code}

GPMONGODB-25: Enumerated types don't persist and dynamic finders don't work

Original Reporter: nugsie
Environment: Linux, Ubuntu 10.10, Java 6 (openjdk), Grails 1.7.3
Version: 1.0.0-M5
Migrated From: http://jira.grails.org/browse/GPMONGODB-25

See attached testcase.

Domain objects with enum properties are persisted to the database WITHOUT the enumerated property. The actual save operation completes but looking in the database, there is no field created for the enum property and a basic equality check of the persisted object against the one returned from the save operation fails though the id property matches (see testcase).

Additionally, finders for enum properties do not work - throwing a "can't serializa class" error - presumably a connected issue to do with the (lack of) mapping of the enumerated property?

GPMONGODB-43: Embedding within Embedding of domain objects throws 'can't serialize class' exception

Original Reporter: kruttik
Environment: OSX 10.5.8, GRAILS 1.3.7, MongoDB Plugin (trunk checkout), tomcat plugin, mongodb 1.8.0
Version: 1.0.0.M6
Migrated From: http://jira.grails.org/browse/GPMONGODB-43

Embedding domain object array within an embedded domain object does not work. The following exception is thrown.

{code}
java.lang.IllegalArgumentException: can't serialize class issue.Component
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:205)
at org.bson.BSONEncoder.putIterable(BSONEncoder.java:230)
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:179)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:121)
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:171)
at org.bson.BSONEncoder.putArray(BSONEncoder.java:217)
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:187)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:121)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:67)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:215)
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:180)
at com.mongodb.DBCollection.insert(DBCollection.java:72)
at org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.groovy:171)
at org.grails.datastore.gorm.GormInstanceApi.this$dist$invoke$4(GormInstanceApi.groovy)
at org.grails.datastore.gorm.GormInstanceApi$4.methodMissing(GormInstanceApi.groovy)
at org.grails.datastore.gorm.GormInstanceApi$4.doInSession(GormInstanceApi.groovy:145)
at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:34)
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:143)
at org.grails.datastore.gorm.InstanceMethodInvokingClosure.call(GormEnhancer.groovy:219)
at BootStrap$_closure1.doCall(BootStrap.groovy:16)
at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.java:251)
at grails.util.Environment.executeForEnvironment(Environment.java:244)
at grails.util.Environment.executeForCurrentEnvironment(Environment.java:220)
at org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212)
at grails.web.container.EmbeddableServer$start.call(Unknown Source)
{code}

Even the references don't work for embedded domain objects, however this does not throw any exception.

I have the following domain classes:

{code}
package issue

class Customer {

String name

static hasMany = [vehicles: Vehicle]

static constraints = {
}

}

package issue

class Vehicle {

String type
List<Part> parts = new ArrayList<Part>()


static hasMany = [owners: Customer]
static belongsTo = Customer
static embedded = ['parts']

static constraints = {
}

}

package issue

class Part {

String type
Maker maker
List<Component> components = new ArrayList<Component>()
static embedded = ['components']
static belongsTo = Maker

static constraints = {
}

}

package issue

class Maker {

String name

static constraints = {
}

}

package issue

class Component {

String type

static constraints = {
}

}

{code}

and the following is the bootstrap snippet:

{code}
def init = { servletContext ->
def customer = new Customer(name: 'Kruttik Aggarwal').save(failOnError: true, flush: true)
def maker = new Maker(name: 'Good Year').save(failOnError: true, flush: true)
def vehicle1 = new Vehicle(type: 'car', owners: [customer], parts: [new Part(type: 'wheel', maker: maker)]).save(failOnError: true, flush: true)
def vehicle2 = new Vehicle(type: 'truck', owners: [customer], parts: [new Part(type: 'headlight', maker: maker)]).save(failOnError: true, flush: true)
customer.vehicles = [vehicle1, vehicle2]
customer.save(failOnError: true, flush: true)
def vehicle3 = new Vehicle(type: 'bus', owners: [customer], parts: [new Part(type: 'plate', maker: maker, components: [new Component(type: 'scribble')])]).save(failOnError: true, flush: true)
}

{code}

and the following is the mongodb shell output:

{code}

db.vehicle.find()
{ "_id" : NumberLong(1), "parts" : [
{
"$$embeddedClassName$$" : "issue.Part",
"components" : [ ],
"type" : "wheel"
}
], "type" : "car", "version" : 0 }
{ "_id" : NumberLong(2), "parts" : [
{
"$$embeddedClassName$$" : "issue.Part",
"components" : [ ],
"type" : "headlight"
}
], "type" : "truck", "version" : 0 }

{ "_id" : NumberLong(1), "name" : "Kruttik Aggarwal", "version" : NumberLong(1), "id" : NumberLong(1) }
{code}

GPMONGODB-48: beforeInsert event not working when using @Mixin(DatastoreUnitTestMixin)

Original Reporter: mjhugo
Environment: macosx, java 1.6, grails 1.3.5, grails-datastore-gorm-test 1.0.0.M2
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-48

Sample grails project attached. When using the @mixin(DatastoreUnitTestMixin) and working in a Grails Unit test, the beforeInsert method is not called on a domain class. Work around can be seen in the second test method below (manually add the entity interceptor)

{code}
void testBeforeInsert() {
def b = new Book(name:'lower')
b.save(flush:true, failOnError:true)
assertEquals b.name.toUpperCase(), b.upperName

}

void testBeforeInsert_manuallySetEventInterceptor() {
    // this test passes with this line:
    getDatastore().addEntityInterceptor(new DomainEventInterceptor())

    def b = new Book(name:'lower')
    b.save(flush:true, failOnError:true)
    assertEquals b.name.toUpperCase(), b.upperName
}

{code}

GPMONGODB-12: Unable to embed a list of objects

Original Reporter: alexduan
Environment: Grails 1.3.6, MongoDB-1.0.M4
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-12

For a class Email:

{code}
class Email {
String address
}
{code}

If I try to embed it into my Person:

{code}
class Person {
Email email
static embedded = ['email']
}
{code}

This works fine. When I try to embed a list of Emails with either:

{code}
class Person {
static hasMany = [emails:Email]
static embedded = ['emails']
}
{code}

or:

{code}
class Person {
List emails
static hasMany = [emails:Email]
static embedded = ['emails']
}
{code}

The document that is stored in Mongo looks like:

{code}
{"_id" : NumberLong(1), "emails" : [ NumberLong(1) ] }
{code}

GPMONGODB-27: Add support for SortedSet

Original Reporter: alari
Environment: Not Specified
Version: 1.0.0-M5
Migrated From: http://jira.grails.org/browse/GPMONGODB-27

It's a bit hard to describe the problem, but I'll try.

The problem behaves in any call to database, like MyDomain.list() or MyDomain.findById("..."), but not when it's operating in a regular environment -- during integration testing, web request proccessing, quartz job.

I notice it only when my service (Spring bean) catches a message from the Routing-JMS plugin. So if it's called in camel context, it fails:

[DefaultMessageListenerContainer-1] ERROR jms.EndpointMessageListener - Caused by: [org.apache.camel.RuntimeCamelException - java.lang.IllegalArgumentException: argument type mismatch]
org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException: argument type mismatch
at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1140)
at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:111)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
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.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:186)
at org.springframework.datastore.mapping.engine.EntityAccess.setPropertyNoConversion(EntityAccess.java:108)
at org.springframework.datastore.mapping.engine.NativeEntryEntityPersister.refreshObjectStateFromNativeEntry(NativeEntryEntityPersister.java:317)
at org.springframework.datastore.mapping.engine.NativeEntryEntityPersister.createObjectFromNativeEntry(NativeEntryEntityPersister.java:249)
at org.springframework.datastore.mapping.mongo.query.MongoQuery$MongoResultList.convertDBObject(MongoQuery.java:658)
at org.springframework.datastore.mapping.mongo.query.MongoQuery$MongoResultList.get(MongoQuery.java:648)
at java.util.AbstractList$Itr.next(AbstractList.java:345)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getPropertySpreadSafe(ScriptBytecodeAdapter.java:471)
...

GPMONGODB-44: Unique constraint related to a *..1 association doesn't work

Original Reporter: pred
Environment: Mac OSX , grails 1.3.7
Version: 1.0.0-M5
Migrated From: http://jira.grails.org/browse/GPMONGODB-44

{code}
class Attachment {
static mapWith = 'mongo'

static belongsTo = [documentModel: DocumentModel]

String name

static constraints = {
    name unique:'documentModel' 
}

}

{code}

{code}
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.doc4web.xfast.domain.dynamic.DocumentModel; nested exception is org.hibernate.MappingException: Unknown entity: com.doc4web.xfast.domain.dynamic.DocumentModel
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:679)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
at org.codehaus.groovy.grails.orm.hibernate.validation.UniqueConstraint.processValidate(UniqueConstraint.java:131)
at org.codehaus.groovy.grails.validation.AbstractConstraint.validate(AbstractConstraint.java:102)
at org.codehaus.groovy.grails.orm.hibernate.validation.AbstractPersistentConstraint.validate(AbstractPersistentConstraint.java:54)
at org.codehaus.groovy.grails.orm.hibernate.validation.UniqueConstraint.validate(UniqueConstraint.java:47)
at org.codehaus.groovy.grails.validation.ConstrainedProperty.validate(ConstrainedProperty.java:935)
at org.codehaus.groovy.grails.validation.GrailsDomainClassValidator.validatePropertyWithConstraint(GrailsDomainClassValidator.java:191)
at org.codehaus.groovy.grails.validation.GrailsDomainClassValidator.validate(GrailsDomainClassValidator.java:84)
at org.codehaus.groovy.grails.validation.GrailsDomainClassValidator.validate(GrailsDomainClassValidator.java:126)
at org.springframework.validation.Validator$validate.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.springframework.validation.Validator$validate.call(Unknown Source)
at org.grails.datastore.gorm.GormValidationApi.validate(GormValidationApi.groovy:66)
at org.grails.datastore.gorm.GormValidationApi$validate.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at org.grails.datastore.gorm.GormValidationApi$validate.callCurrent(Unknown Source)
at org.grails.datastore.gorm.GormValidationApi.validate(GormValidationApi.groovy:115)
at sun.reflect.GeneratedMethodAccessor600.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:219)
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.PogoMetaMethodSite.call(PogoMetaMethodSite.java:68)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.groovy:153)
at sun.reflect.GeneratedMethodAccessor599.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.GeneratedMethodAccessor598.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:143)
at org.grails.datastore.gorm.SessionCallback$doInSession.call(Unknown Source)
at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:37)
at sun.reflect.GeneratedMethodAccessor597.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:141)
at org.grails.datastore.gorm.GormInstanceApi$save.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
at org.grails.datastore.gorm.GormInstanceApi$save.callCurrent(Unknown Source)
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:101)
at sun.reflect.GeneratedMethodAccessor596.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:219)
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:120)
at com.doc4web.xfast.plugins.services.BdocImportService.importData(BdocImportService.groovy:56)
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.MetaClassImpl.invokeMethod(MetaClassImpl.java:1003)
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.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:157)
at com.doc4web.xfast.support.services.DefaultImportService$_populateDocument_closure4.doCall(DefaultImportService.groovy:78)
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:295)
at groovy.lang.Closure$call$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at groovy.lang.Closure$call$0.call(Unknown Source)
at com.doc4web.xfast.support.services.DefaultImportService.eachEntry(DefaultImportService.groovy:43)
at sun.reflect.GeneratedMethodAccessor590.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.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:153)
at com.doc4web.xfast.support.services.DefaultImportService.populateDocument(DefaultImportService.groovy:77)
at com.doc4web.xfast.support.services.DefaultImportService$$FastClassByCGLIB$$1423a1c3.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at com.doc4web.xfast.plugins.services.BdocImportService$$EnhancerByCGLIB$$a52bf19d.populateDocument()
at com.doc4web.xfast.core.services.ImportServicePlugin$populateDocument.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:128)
at com.doc4web.xfast.services.ImportService.populate(ImportService.groovy:70)
at com.doc4web.xfast.services.ImportService$$FastClassByCGLIB$$fc30269d.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at com.doc4web.xfast.services.ImportService$$EnhancerByCGLIB$$b2047615.populate()
at com.doc4web.xfast.services.ImportService$populate.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:128)
at com.doc4web.xfast.webservice.ConsumeController$_closure5.doCall(ConsumeController.groovy:105)
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 com.doc4web.xfast.webservice.ConsumeController$_closure5.doCall(ConsumeController.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 org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleAction(SimpleGrailsControllerHelper.java:368)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.executeAction(SimpleGrailsControllerHelper.java:232)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:190)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:129)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:73)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:292)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:298)
at org.codehaus.groovy.grails.web.util.WebUtils$forwardRequestForUrlMappingInfo.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.grails.web.util.WebUtils$forwardRequestForUrlMappingInfo.call(Unknown Source)
at org.codehaus.groovy.grails.web.metaclass.ForwardMethod.forward(ForwardMethod.groovy:61)
at org.codehaus.groovy.grails.web.metaclass.ForwardMethod$forward.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.grails.web.metaclass.ForwardMethod$forward.call(Unknown Source)
at org.codehaus.groovy.grails.plugins.web.ControllersGrailsPlugin$_registerControllerMethods_closure29.doCall(ControllersGrailsPlugin.groovy:326)
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 org.codehaus.groovy.runtime.metaclass.ClosureMetaMethod.invoke(ClosureMetaMethod.java:80)
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.MetaClassImpl.invokeMethod(MetaClassImpl.java:1003)
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:149)
at com.doc4web.xfast.webservice.ConsumeController$_closure3.doCall(ConsumeController.groovy:59)
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.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at com.doc4web.xfast.webservice.ConsumeController$_closure3.doCall(ConsumeController.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 org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleAction(SimpleGrailsControllerHelper.java:368)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.executeAction(SimpleGrailsControllerHelper.java:232)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:190)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:129)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:73)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:292)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:298)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:264)
at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:255)
at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:183)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.obtainContent(GrailsPageFilter.java:245)
at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:134)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:366)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:112)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
at org.codehaus.groovy.grails.plugins.springsecurity.RequestHolderAuthenticationFilter.doFilter(RequestHolderAuthenticationFilter.java:40)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.codehaus.groovy.grails.plugins.springsecurity.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:167)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:65)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.hibernate.MappingException: Unknown entity: com.doc4web.xfast.domain.dynamic.DocumentModel
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:580)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1365)
at org.hibernate.event.def.DefaultLockEventListener.onLock(DefaultLockEventListener.java:73)
at org.hibernate.impl.SessionImpl.fireLock(SessionImpl.java:611)
at org.hibernate.impl.SessionImpl.lock(SessionImpl.java:603)
at sun.reflect.GeneratedMethodAccessor607.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.orm.hibernate3.HibernateTemplate$CloseSuppressingInvocationHandler.invoke(HibernateTemplate.java:1282)
at $Proxy21.lock(Unknown Source)
at org.codehaus.groovy.grails.orm.hibernate.validation.UniqueConstraint$1.doInHibernate(UniqueConstraint.java:164)
at org.codehaus.groovy.grails.orm.hibernate.validation.UniqueConstraint$1.doInHibernate(UniqueConstraint.java:131)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
... 335 more
{code}

GPMONGODB-24: CLONE -Dynamic finders returning multiple objects are not wrapped as domain objects

Original Reporter: nugsie
Environment: MongoDB Plugin 1.0-M4, Grails 1.3.7, Java 1.6, Linux (Ubuntu 10)
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-24

When using list() or findAll*() methods, the plugin returns lists of named BasicDBObjects. This is inconsistent with the behaviour of the finders returning single objects which correctly return wrapped domain object instances.

This means 2 crucial things:

  1. instanceOf() method isn't bound and any comparison to other domain objects (ie ones that haven't been returned as BasicDBObjects) will return false

  2. The id property will not be correctly mapped as the underlying implementation is _id so it's not exposed in the BasicDBObject as 'id'

Whilst other properties are correct so for the most part it can feel as if things are functioning normally this is quite a problem.

Test case app attached to demonstrate the problem both with list() and findAll*() along with a proof that general single finders are working ok.

GPMONGODB-34: All finders returning collections of domain objects actually return collections of BasicDBObject

Original Reporter: nugsie
Environment: Ubuntu Linux 10.10, Java 6, Grails 1.3.7, Gorm Plugin 1.0-M5 (and latest git master clone)
Version: 1.0.0-M5
Migrated From: http://jira.grails.org/browse/GPMONGODB-34

Essentially the same problem I reported in GPMONGODB-19 and GPMONGODB-24. Unfortunately I thought this was fixed as part of GPMONGODB-10, but my original testcase still fails on the latest release and libraries/plugin built from latest git clone. HOWEVER, the same tests when applied within the context of the gradlew test cycle seem to pass!

I've been trying to work through and understand why this might be the case but still have no idea why this should be failing in a standalone app with plugin and jar dependencies built from git but work ok within a testcase from the command-line build. I imagine this is why it has appeared to be fixed when running through the test suite but why it keeps getting raised back here.

I've attached a demo testcase which actually uses the GormDatastoreSpec in exactly the same way as the bundled tests but which fails with the response I'm experiencing - hopefully this is more in line and testable/reproducible than the previous bug report.

Please let me know if there's anything more I can do to help resolve this as we'd really love to be able to continue forward using the plugin for our current project!

GPMONGODB-41: DatastoreUnitTestMixin doesn't support testing crieteira queries that contain 'ilike' criteria

Original Reporter: erdi
Environment: Not Specified
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-41

It would be nice if testing with DatastoreUnitTestMixin supported more (or maybe even all) of the hibernate criteria. At the moment if the query under test includes an 'ilike' criteria you will get the following exception:

No signature of method: grails.gorm.CriteriaBuilder.ilike() is applicable for argument types: (java.lang.String, org.codehaus.groovy.runtime.GStringImpl) values: [name, ex%]
Possible solutions: like(java.lang.String, java.lang.Object), lte(java.lang.String, java.lang.Object), wait(), id(), inList(java.lang.String, [Ljava.lang.Object;), inList(java.lang.String, java.util.Collection)

GPMONGODB-11: MongoDB saves in BootStrap not persisting unless explicitly set to flush:true

Original Reporter: alexduan
Environment: Grails 1.3.6, MongoDB-1.0.0.M4
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-11

When creating objects in BootStrap.groovy, objects remain unsaved until either an explicit flush or when a read occurs.

Scenario one:

{code}
new Role(authority: "ROLE_ADMIN").save()
{code}

Results: role is not saved

Scenario two:

{code}
new Role(authority: "ROLE_ADMIN").save()
role = Role.list()
{code}

Results: role is saved

Scenario three:

{code}
new Role(authority: "ROLE_ADMIN").save(flush:true)
{code}

Results: role is saved

Does not seem to affect controllers

GPMONGODB-31: find[All]By*InList causes IllegalArgumentException - can't serialize class

Original Reporter: nugsie
Environment: Ubuntu Linux 10.10, Java 6, Grails 1.3.7
Version: 1.0.0-M5
Migrated From: http://jira.grails.org/browse/GPMONGODB-31

See attached testcase.

Performing a finder query using find or findAllBy[xxx]InList results incorrectly in an illegal argument exception in BSON mapping (full stack trace below). This appears to be because the domain objects aren't being mapped to the id properties for the underlying query. Substituting:

{noformat}
Entity.findByEntitiesInList([obj2])
{noformat}

with:

{noformat}
Entity.findByEntitiesInList([obj2.id])
{noformat}

works around the issue, but this is incorrect and shouldn't be necessary.

{noformat}

can't serialize class mongo.Entity
java.lang.IllegalArgumentException: can't serialize class mongo.Entity
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:205)
at org.bson.BSONEncoder.putIterable(BSONEncoder.java:230)
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:179)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:121)
at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:171)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:121)
at org.bson.BSONEncoder.putObject(BSONEncoder.java:67)
at com.mongodb.OutMessage._appendQuery(OutMessage.java:62)
at com.mongodb.OutMessage.query(OutMessage.java:39)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:264)
at com.mongodb.DBCursor._check(DBCursor.java:309)
at com.mongodb.DBCursor._hasNext(DBCursor.java:431)
at com.mongodb.DBCursor._fill(DBCursor.java:499)
at com.mongodb.DBCursor.toArray(DBCursor.java:533)
at com.mongodb.DBCursor.toArray(DBCursor.java:522)
at org.springframework.datastore.mapping.mongo.query.MongoQuery$MongoResultList.(MongoQuery.java:638)
at org.springframework.datastore.mapping.mongo.query.MongoQuery$26.doInDB(MongoQuery.java:370)
at org.springframework.datastore.mapping.mongo.query.MongoQuery$26.doInDB(MongoQuery.java:340)
at org.springframework.data.document.mongodb.MongoTemplate.execute(MongoTemplate.java:293)
at org.springframework.datastore.mapping.mongo.query.MongoQuery.executeQuery(MongoQuery.java:340)
at org.springframework.datastore.mapping.query.Query.list(Query.java:476)
at org.grails.datastore.gorm.finders.FindByFinder.invokeQuery(FindByFinder.java:52)
at org.grails.datastore.gorm.finders.FindByFinder$1.doInSession(FindByFinder.java:44)
at org.grails.datastore.gorm.finders.AbstractFinder.execute(AbstractFinder.java:41)
at org.grails.datastore.gorm.finders.FindByFinder.doInvokeInternal(FindByFinder.java:41)
at org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:137)
at org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:284)
at org.grails.datastore.gorm.finders.FinderMethod$invoke.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:132)
at org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.StaticMethodInvokingClosure.call(GormEnhancer.groovy:245)
at org.codehaus.groovy.runtime.metaclass.ClosureStaticMetaMethod.invoke(ClosureStaticMetaMethod.java:59)
at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1355)
at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1343)
at groovy.lang.ExpandoMetaClass.invokeStaticMethod(ExpandoMetaClass.java:1082)
at org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.call(StaticMetaClassSite.java:50)
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 mongo.EntityIntegrationTests.testInFinderWithOneEntry(EntityIntegrationTests.groovy:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.internal.runners.statements.RunAfters$evaluate.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 org.codehaus.groovy.grails.test.junit4.runner.GrailsTestEnvironmentStatement$_evaluate_closure1.doCall(GrailsTestEnvironmentStatement.groovy:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.codehaus.groovy.grails.test.junit4.runner.GrailsTestEnvironmentStatement$_evaluate_closure1.doCall(GrailsTestEnvironmentStatement.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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$call$0.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 org.codehaus.groovy.grails.test.support.GrailsTestInterceptor.wrap(GrailsTestInterceptor.groovy:52)
at org.codehaus.groovy.grails.test.support.GrailsTestInterceptor$wrap.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.codehaus.groovy.grails.test.junit4.runner.GrailsTestEnvironmentStatement.evaluate(GrailsTestEnvironmentStatement.groovy:34)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:24)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runners.ParentRunner$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:124)
at org.codehaus.groovy.grails.test.junit4.JUnit4GrailsTestType.doRun(JUnit4GrailsTestType.groovy:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.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.codehaus.groovy.grails.test.support.GrailsTestTypeSupport.run(GrailsTestTypeSupport.groovy:120)
at org.codehaus.groovy.grails.test.GrailsTestType$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:124)
at _GrailsTest_groovy$_run_closure4.doCall(_GrailsTest_groovy:271)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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:153)
at _GrailsTest_groovy$_run_closure4.call(_GrailsTest_groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1104)
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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.Script.invokeMethod(Script.java:78)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1123)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017)
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:153)
at _GrailsTest_groovy$_run_closure2.doCall(_GrailsTest_groovy:228)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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:295)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1220)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1196)
at org.codehaus.groovy.runtime.dgm$110.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at _GrailsTest_groovy$_run_closure1_closure21.doCall(_GrailsTest_groovy:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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 org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:2456)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1249)
at org.codehaus.groovy.runtime.dgm$111.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
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 _GrailsTest_groovy$_run_closure1.doCall(_GrailsTest_groovy:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:127)
at groovy.lang.Closure.call(Closure.java:282)
at groovy.lang.Closure.call(Closure.java:295)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:127)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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$call$0.call(Unknown Source)
at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)
at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.MetaClassImpl.invokeMethod(MetaClassImpl.java:1003)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1123)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017)
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.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1104)
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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.Script.invokeMethod(Script.java:78)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1123)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:127)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
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:145)
at TestApp$_run_closure1.doCall(TestApp.groovy:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:127)
at groovy.lang.Closure.call(Closure.java:282)
at groovy.lang.Closure.call(Closure.java:295)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149)
at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:127)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16_closure18.doCall(GantBinding.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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$call$0.call(Unknown Source)
at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)
at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.MetaClassImpl.invokeMethod(MetaClassImpl.java:1003)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1123)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017)
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.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_closure16.doCall(GantBinding.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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$call$0.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 gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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:295)
at groovy.lang.Closure$call.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 gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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 gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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$call$0.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 gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
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 gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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.MetaClassImpl.invokeMethod(MetaClassImpl.java:708)
at gant.Gant.invokeMethod(Gant.groovy)
at groovy.lang.GroovyObject$invokeMethod.callCurrent(Unknown Source)
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:153)
at gant.Gant.executeTargets(Gant.groovy:590)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
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:153)
at gant.Gant.executeTargets(Gant.groovy:589)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeWithGantInstance(GrailsScriptRunner.java:667)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.callPluginOrGrailsScript(GrailsScriptRunner.java:526)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeCommand(GrailsScriptRunner.java:310)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.main(GrailsScriptRunner.java:135)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
{noformat}

GPMONGODB-22: Can't sort/order by multiple fields

Original Reporter: oct
Environment: M4, grails 1.3.7
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-22

Multiple order() calls are ignored when querying using criteria (withCriteria, createCriteria). The last one overrides all prev ones and only 1 field is used.

If I have following code;
{code}
def users = User.withCriteria {
eq('enabled', true)
firstResult(args.offset)
maxResults(args.max)
order("countLike", "desc")
order("dateCreated", "desc")
}
{/code}

this query is generated:
{ query: { enabled: true }, orderby: { dateCreated: -1 } }

but it should be:
{ query: { enabled: true }, orderby: { countLike: -1, dateCreated: -1 } }

Thanks.

GPMONGODB-20: .delete(flush:true) doesn't cascade from the owner in one-to-one relation

Original Reporter: oct
Environment: Windows XP, Linux fedora 14 64bit, mongodb-M4, grails 1.3.7
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-20

owner.delete() doesn't delete it's dependant

{code}
//User.groovy
class User {
ObjectId id

String name
UserSettings settings
}
{code}

{code}
//UserSettings.groovy
class UserSettings {
ObjectId id

boolean someSetting = true

static belongsTo = [user:User]

static mapping = {
collection "user_settings"
}
}
{code}

// sample code
def u = new User(name:"Name1", settings:new UserSettings()).save(flush:true)

saves both domains fine, with bidirectional assoc and "foreign" DBRefs, but

u.delete(flush:true) leaves behind user_settings record, it doesn't cascade the delete.

{code}
// integration test code
void test_user_settings() {
def u = new User(name:"user2", settings:new UserSettings())
u.save(flush:true)

def found1 = User.findByName("user2")
assertNotNull found1

def found1a = UserSettings.findByUser(found1.id)
assertNotNull found1a

found1.delete(flush:true)

def found2 = User.findByName("user2")
assertNull found2

def found1b = UserSettings.findByUser(found1.id)
// THIS ONE FAILS
assertNull found1b
}
{code}

GPMONGODB-21: Embedded class defined in same file as parent results in NPE when saving parent object

Original Reporter: ceracm
Environment: Not Specified
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-21

{code}
java.lang.NullPointerException
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:139)
at org.grails.datastore.gorm.GormEnhancer$1.call(GormEnhancer.groovy:93)
at demo1.CustomerController$_closure4.doCall(CustomerController.groovy:24)
at demo1.CustomerController$_closure4.doCall(CustomerController.groovy)
at java.lang.Thread.run(Thread.java:680)
{code}

Customer.groovy:

{code}
class Customer {
String name
Address address
static embedded = ['address']
}

class Address {
String street
}
{code}


Moving Address to its own file fixes the problem.

GPMONGODB-40: DatastoreUnitTestMixin breaks integration test phase if you run both unit and integration tests at once

Original Reporter: erdi
Environment: Not Specified
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-40

I've recently started using DatastoreUnitTestMixin to unit test my code using criteria queries. If I run my unit tests or integration test separately everything works fine, but if I run them both using grails test-app I get a following stack trace:

java.lang.UnsupportedOperationException
at $Proxy35.doWebDescriptor(Unknown Source)
at _GrailsPackage_groovy$_run_closure5_closure19.doCall(_GrailsPackage_groovy:232)
at _GrailsPackage_groovy$_run_closure5_closure19.doCall(_GrailsPackage_groovy)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:282)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at _GrailsPackage_groovy$_run_closure5.doCall(_GrailsPackage_groovy:230)
at _GrailsPackage_groovy$_run_closure2.doCall(_GrailsPackage_groovy:168)
at _GrailsBootstrap_groovy$_run_closure6.doCall(_GrailsBootstrap_groovy:134)
at _GrailsTest_groovy$_run_closure9.doCall(_GrailsTest_groovy:301)
at _GrailsTest_groovy$_run_closure9.doCall(_GrailsTest_groovy)
at _GrailsTest_groovy$_run_closure1_closure21.doCall(_GrailsTest_groovy:178)
at _GrailsTest_groovy$_run_closure1.doCall(_GrailsTest_groovy:168)
at TestApp$_run_closure1.doCall(TestApp.groovy:102)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Error generating web.xml file: null

I checked out the code of DatastoreUnitTestMixin and tracked down the reason to be in mocking GrailsPluginManager and assigning it to PluginManagerHolder.pluginManager - the mocked object doesn't implement doWebDescriptor method.

The following is a workaround class I'm using at the moment with success:
class DatastoreUnitTestMixinWithFix extends DatastoreUnitTestMixin {
private GrailsPluginManager originalManager
private boolean shouldRestorePluginManager = false

def mockDomain(Class domainClass, List instances = []) {
    if (!shouldRestorePluginManager) {
        originalManager = PluginManagerHolder.pluginManager
        shouldRestorePluginManager = true
    }
    super.mockDomain(domainClass, instances)
}

def disconnect() {
    super.disconnect()
    if (shouldRestorePluginManager) {
        PluginManagerHolder.pluginManager = originalManager
        shouldRestorePluginManager = false
    }
}

}

GPMONGODB-8: beforeInsert() method duplicates '_id' property with a new 'id' property

Original Reporter: oct
Environment: Fedora 14, mongodb 1.6.4, grails-mongodb M4
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-8

If a domain contains def beforeInsert(){}, once it's saved there is a new property 'id' which is equal with '_id' property. Both are of ObjectId type.

I'm trying to use def beforInsert() method, since def beforeInsert closure doesn't work, but that's different issue.

GPMONGODB-21: Embedded class defined in same file as parent results in NPE when saving parent object

Original Reporter: ceracm
Environment: Not Specified
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-21

{code}
java.lang.NullPointerException
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:139)
at org.grails.datastore.gorm.GormEnhancer$1.call(GormEnhancer.groovy:93)
at demo1.CustomerController$_closure4.doCall(CustomerController.groovy:24)
at demo1.CustomerController$_closure4.doCall(CustomerController.groovy)
at java.lang.Thread.run(Thread.java:680)
{code}

Customer.groovy:

{code}
class Customer {
String name
Address address
static embedded = ['address']
}

class Address {
String street
}
{code}


Moving Address to its own file fixes the problem.

GPMONGODB-14: mongodb not functioning properly along with hibernate

Original Reporter: snarayan
Environment: Ubuntu 10
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-14

Recently installed mongodb plugin 1.0M1 on my ubuntu machine.

The plugin does not work properly with the hibernate plugin installed.

I had included the below code in my domain.

{code:java}
static mapWith = "mongo"
{code}

It doesn't support basic domain finders and also returns the underlying mongo object in some occassions instead of the direct domain instance.

Surprisingly, it works fine on my other windows machine.

The plugin works properly with hibernate uninstalled.

But, I have an application that needs to run a scheduled job. I use quartz plugin for that which internally needs Hibernate plugin. So I'd be needing that plugin.

Have any of you come across this issue earlier? Thanks.

GPMONGODB-15: GORM's .delete() ignores domains with identity of String type

Original Reporter: oct
Environment: Fedora linux, Mongodb 1.6.4, Grails 1.3.7, mongodb M4
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-15

If domain's id is of type String, delete doesn't work properly, it ignores String type and assumes it's ObjectId

In both cases mongodb will execute (note _id is ObjectId):

{code}
{ "ts" : "Tue Feb 22 2011 23:28:26 GMT-0600 (CST)",
"info" : "remove query: { _id: ObjectId('4d649afa85632ecab2628ec2') }",
"millis" : 0 }
{code}

expected would be (for String version):

{code}
{ "ts" : "Tue Feb 22 2011 23:28:26 GMT-0600 (CST)",
"info" : "remove query: { _id: "4d649afa85632ecab2628ec2"}",
"millis" : 0 }
{code}

For example if we have these 2 domains:

{code}
class Book {
ObjectId id
String title

static constraints = { title blank:false }
}
{code}

{code}
class BookWithStringId {
String id
String title

static constraints = { title blank:false }
}
{code}

{code}
def b = Book.get(id)
b.delete() // works

def b2 = BookWithStringId.get(id)
b2.delete() // doesn't work
{code}

Please see attached a sample project. With 1 integration test.

PS: To see what mongodb does you may want to enable profiling (e.g. db.setProfilingLevel(2) )

GPMONGODB-19: Dynamic finders returning multiple objects are not wrapped as domain objects

Original Reporter: nugsie
Environment: MongoDB Plugin 1.0-M4, Grails 1.3.7, Java 1.6, Linux (Ubuntu 10)
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-19

When using list() or findAll*() methods, the plugin returns lists of named BasicDBObjects. This is inconsistent with the behaviour of the finders returning single objects which correctly return wrapped domain object instances.

This means 2 crucial things:

  1. instanceOf() method isn't bound and any comparison to other domain objects (ie ones that haven't been returned as BasicDBObjects) will return false

  2. The id property will not be correctly mapped as the underlying implementation is _id so it's not exposed in the BasicDBObject as 'id'

Whilst other properties are correct so for the most part it can feel as if things are functioning normally this is quite a problem.

Test case app attached to demonstrate the problem both with list() and findAll*() along with a proof that general single finders are working ok.

GPMONGODB-18: Add support for querying dynamic properties with dynamic finders

Original Reporter: pledbrook
Environment: Not Specified
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-18

It should be possible to query on dynamic properties with standard GORM dynamic finders. So for example, if I add some properties like so:

{code}
def p = new Plant(name:"Pineapple")
p['color'] = 'Yellow'
p['hasLeaves'] = true
p.save()
{code}

I should be able to execute the query

{code}
def yellowPlants = Plant.findAllByColor("yellow")
{code}

GRAILS-4637: Overridden default mappings for embedded classes

Original Reporter: danyer
Environment: Not Specified
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GRAILS-4637

This is a new feature suggestion for embedded classes, which their original mappings could be overriden in the host classes. See how I think that will could be.

I defined domain classes with two embedded classes:

{code}
class A {
Aa aa
Bb bb
static embedded = ['aa','bb']
// overridden the default mapping for class Aa
static mapping = {
aa {
columns {
aa1 column: 'A_AA_ONE'
aa2 column: 'A_AA_TWO'
}
}
}

}
class B {
Aa aa
Bb bb
static embedded = ['aa','bb']
// overridden the default mapping for class Bb
static mapping = {
bb {
columns {
bb1 column: 'B_BB_ONE'
bb2 column: 'B_BB_TWO'
}
}
}
}

class Aa {
String aa1
String aa2
static mapping = {
// default mapping for class Aa
columns {
aa1 column: 'AA_ONE'
aa2 column: 'AA_TWO'
}
}
}

class Bb {
String bb1
String bb2
// default mapping for class Bb
static mapping = {
columns {
bb1 column: 'BB_ONE'
bb2 column: 'BB_TWO'
}
}
}
{code}

In the generated table, I expect something like this:

{code:SQL}
create table PUBLIC.A (
ID BIGINT not null,
VERSION BIGINT not null,
A_AA_ONE VARCHAR(255) not null,
A_AA_TWO VARCHAR(255) not null,
BB_ONE VARCHAR(255) not null,
BB_TWO VARCHAR(255) not null,
primary key (ID)
);

create table PUBLIC.B (
ID BIGINT not null,
VERSION BIGINT not null,
AA_ONE VARCHAR(255) not null,
AA_TWO VARCHAR(255) not null,
B_BB_ONE VARCHAR(255) not null,
B_BB_TWO VARCHAR(255) not null,
primary key (ID)
);
{code}

GPMONGODB-1: Strange hasMany behaviour with mongodb 1.0-M2

Original Reporter: alari
Environment: Not Specified
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-1

{code}
import org.bson.types.ObjectId

class User {

ObjectId id

static hasMany = [atoms: Atom]
}
{code}

{code}
class Atom {
User owner
static belongsTo = User
}
{code}

{code}
class AtomTests extends GroovyTestCase {
void testAddToAtoms() {
User u = User.findByUsername("root")

  Atom a = new Atom(title: "test atom", owner: u)
  assert a
  if (!a.validate()) assertNull a.errors
  a.save()
  u.addToAtoms(a)
  assert a in u.atoms

}
}
{code}

Assertion failed: assert a in u.atoms | | | | | [mir.Atom : 4d5d1d2ee917b52df53af9cc, mir.Atom : 4d5d1b786678b52d99900912, mir.Atom : 4d5b9772a8bd9317a533efe4, mir.Atom : 4d5d1fc28c71b52d214c0906, mir.Atom : 4d5d0bfbef5eb52d19de66c9, mir.Atom : 4d5d1eeb8b86b52d90c985a7, mir.Atom : 4d5d1bab8b92b52d3ad0820b, mir.Atom : 4d5d1f7ca511b52de914e659, mir.Atom : 4d5d1cd1e679b52db064ee26, mir.Atom : 4d5b9750c9459317ca9f6390] | false mir.Atom : 4d5d1fc28c71b52d214c0906
junit.framework.AssertionFailedError: Assertion failed:

assert a in u.atoms
| | |
| | [mir.Atom : 4d5d1d2ee917b52df53af9cc, mir.Atom : 4d5d1b786678b52d99900912, mir.Atom : 4d5b9772a8bd9317a533efe4, mir.Atom : 4d5d1fc28c71b52d214c0906, mir.Atom : 4d5d0bfbef5eb52d19de66c9, mir.Atom : 4d5d1eeb8b86b52d90c985a7, mir.Atom : 4d5d1bab8b92b52d3ad0820b, mir.Atom : 4d5d1f7ca511b52de914e659, mir.Atom : 4d5d1cd1e679b52db064ee26, mir.Atom : 4d5b9750c9459317ca9f6390]
| false
mir.Atom : 4d5d1fc28c71b52d214c0906

at mir.AtomTests.testAddToAtoms(AtomTests.groovy:21)

GPMONGODB-4: Several spring-data-mongodb implementations in WAR

Original Reporter: alari
Environment: Debian, Grails 1.3.6, Tomcat 7, grails-mongodb 1.0-M2
Version: Not Specified
Migrated From: http://jira.grails.org/browse/GPMONGODB-4

grails create-app test-mongo
cd test-mongo
grails uninstall-plugin hibernate
grails install-plugin mongodb 1.0-M2
grails prod war
sudo mv target/test-mongo-0.1.war ~tomcat/webapps/test/ROOT.war
ls -la ~tomcat/webapps/test/ROOT/WEB-INF/lib

...

spring-data-mongodb-1.0.0.BUILD-SNAPSHOT.jar
spring-data-mongodb-1.0.0.M1.jar

...

Starting an application failed.

GPMONGODB-23: Plugin fails with NullPointerExceptions

Original Reporter: nugsie
Environment: Grails 1.3.7, Ubuntu 10.10, Java 6 (OpenJDK)
Version: 1.0.0-M5
Migrated From: http://jira.grails.org/browse/GPMONGODB-23

Looks as if:

final MongoTemplate template = mongoSession.getMongoTemplate(entity); [MongoQuery line 338]
is returning null as a result of an empty mongoTemplates Map in MongoDatastore.

  1. Create a basic project, single entity with controller and views.
  2. Fire up with 'run-app'
  3. Attempt to view list/create pages -> fail with NPE

NOTE: The same applies for all CRUD operations, dynamic finders etc. though obviously with slightly varying stack traces.

java.lang.NullPointerException
at org.grails.datastore.gorm.GormStaticApi$10.doInSession(GormStaticApi.groovy:298)
at org.grails.datastore.gorm.GormStaticApi$10.doInSession(GormStaticApi.groovy)
at org.grails.datastore.gorm.SessionCallback$doInSession.call(Unknown Source)
at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:37)
at org.grails.datastore.gorm.GormStaticApi.list(GormStaticApi.groovy:294)
at org.grails.datastore.gorm.StaticMethodInvokingClosure.call(GormEnhancer.groovy:245)
at mongoblocker.EntityController$_closure2.doCall(EntityController.groovy:13)
at mongoblocker.EntityController$_closure2.doCall(EntityController.groovy)
at java.lang.Thread.run(Thread.java:679)

java.lang.NullPointerException
at org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.groovy:167)
at org.grails.datastore.gorm.GormInstanceApi.this$dist$invoke$4(GormInstanceApi.groovy)
at org.grails.datastore.gorm.GormInstanceApi$4.methodMissing(GormInstanceApi.groovy)
at org.grails.datastore.gorm.GormInstanceApi$4.doInSession(GormInstanceApi.groovy:143)
at org.grails.datastore.gorm.SessionCallback$doInSession.call(Unknown Source)
at org.grails.datastore.gorm.SessionCallback$doInSession.call(Unknown Source)
at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:37)
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:141)
at org.grails.datastore.gorm.InstanceMethodInvokingClosure.call(GormEnhancer.groovy:219)
at mongoblocker.EntityController$_closure4.doCall(EntityController.groovy:24)
at mongoblocker.EntityController$_closure4.doCall(EntityController.groovy)
at java.lang.Thread.run(Thread.java:679)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.