Grails
  1. Grails
  2. GRAILS-1822

Domain class test fails if no DataSource configured

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Won't Fix
    • Affects Version/s: 1.0-RC1, 1.0-RC2
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:
      java version "1.5.0_13"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05)
      Java HotSpot(TM) Server VM (build 1.5.0_13-b05, mixed mode)
    • Testcase included:
      yes

      Description

      If you have no DataSources configured in an application the domain class tests cause an exception which ends the testing process.

      Here is how to reproduce.

      1. grails create-app test
      2. cd test
      3. vi grails-app/conf/DataSource.groovy

      edit the contents to be just:
      dataSource {
      }

      4. grails test-app
      (The tests pass at this point)
      5. grails create-domain-class mydomain
      6. grails test-app
      The tests stop with an exception. Further domain class tests are not attempted.

      Running 1 Integration Test...
      Running test MydomainTests...
      testSomething...Error executing tests could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query ...
      org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
      at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:613)
      at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
      at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:378)
      at org.springframework.orm.hibernate3.HibernateTemplate.loadAll(HibernateTemplate.java:541)
      at org.codehaus.groovy.grails.orm.hibernate.metaclass.ListPersistentMethod.doInvokeInternal(ListPersistentMethod.java:50)
      at org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractStaticPersistentMethod.invoke(AbstractStaticPersistentMethod.java:70)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      [*** Pages of stacktrace lines cut here ***]

      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:101)
      at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
      Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
      at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
      at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
      at org.hibernate.loader.Loader.doList(Loader.java:2223)
      at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
      at org.hibernate.loader.Loader.list(Loader.java:2099)
      at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
      at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
      at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
      at org.springframework.orm.hibernate3.HibernateTemplate$5.doInHibernate(HibernateTemplate.java:545)
      at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:373)
      ... 407 more
      Caused by: java.sql.SQLException: Table not found in statement [select this_.id as id0_0_, this_.version as version0_0_ from mydomain this_]
      at org.hsqldb.jdbc.Util.throwError(Unknown Source)
      at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
      at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
      at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505)
      at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:423)
      at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
      at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
      at org.hibernate.loader.Loader.doQuery(Loader.java:673)
      at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
      at org.hibernate.loader.Loader.doList(Loader.java:2220)
      ... 414 more
      Error running tests: org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query

      The work around is to edit back in the hsql databases entries into DataSource.groovy.

        Activity

        Hide
        Graeme Rocher added a comment -

        you need a datasource

        Show
        Graeme Rocher added a comment - you need a datasource

          People

          • Assignee:
            Unassigned
            Reporter:
            Philip Shore
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development