2017-02-09 3 views
1

Я пытаюсь обновить приложение Grails с 3,1.10 до 3.2.5, чтобы использовать новую версию GORM и т. Д., Но запуск невозможен при достижении миграции базы данных.Ошибка при обновлении приложения Grails от 3.1.10 до 3.2.5

я получаю:

INFO 2/9/17 2:08 PM: liquibase: Can not use class org.grails.plugins.databasemigration.liquibase.GormDatabase as a Liquibase service because it does not have a no-argument constructor 
ERROR org.springframework.boot.SpringApplication - Application startup failed 
org.springframework.transaction.HeuristicCompletionException: Heuristic completion: outcome state is rolled back; nested exception is org.springframework.transaction.IllegalTransactionStateException: Transaction is already completed - do not call commit or rollback more than once per transaction 
at org.grails.transaction.ChainedTransactionManager.commit(ChainedTransactionManager.java:183) 
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:150) 
at grails.transaction.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:93) 
at grails.transaction.GrailsTransactionTemplate$execute.call(Unknown Source) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) 
at org.grails.plugins.databasemigration.DatabaseMigrationTransactionManager.withTransaction(DatabaseMigrationTransactionManager.groovy:31) 
at org.grails.plugins.databasemigration.DatabaseMigrationTransactionManager$withTransaction.call(Unknown Source) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) 
at org.grails.plugins.databasemigration.DatabaseMigrationGrailsPlugin$_doWithApplicationContext_closure2.doCall(DatabaseMigrationGrailsPlugin.groovy:77) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) 
at groovy.lang.Closure.call(Closure.java:414) 
at groovy.lang.Closure.call(Closure.java:430) 
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) 
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) 
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2068) 
at org.codehaus.groovy.runtime.dgm$164.invoke(Unknown Source) 
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) 
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) 
at org.grails.plugins.databasemigration.DatabaseMigrationGrailsPlugin.doWithApplicationContext(DatabaseMigrationGrailsPlugin.groovy:63) 
at org.grails.plugins.DefaultGrailsPlugin.doWithApplicationContext(DefaultGrailsPlugin.java:523) 
at org.grails.plugins.AbstractGrailsPluginManager.doPostProcessing(AbstractGrailsPluginManager.java:224) 
at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:246) 
at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy) 
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) 
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) 
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:383) 
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:337) 
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:882) 
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) 
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762) 
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:372) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) 
at grails.boot.GrailsApp.run(GrailsApp.groovy:83) 
at grails.boot.GrailsApp.run(GrailsApp.groovy:388) 
at grails.boot.GrailsApp.run(GrailsApp.groovy:375) 
at grails.boot.GrailsApp$run.call(Unknown Source) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) 
at saasapi.Application.main(Application.groovy:8) 
Caused by: org.springframework.transaction.IllegalTransactionStateException: Transaction is already completed - do not call commit or rollback more than once per transaction 
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:704) 
at org.grails.transaction.MultiTransactionStatus.commit(MultiTransactionStatus.java:73) 
at org.grails.transaction.ChainedTransactionManager.commit(ChainedTransactionManager.java:156) 
... 56 common frames omitted 

Я обновил или добавил к моему build.gradle следующие зависимости:

buildscript { 
    ... 
    dependencies { 
     .... 
     classpath "org.grails.plugins:hibernate5:6.0.4" 
     classpath 'org.grails.plugins:database-migration:3.0.0' 
    } 
} 

dependencies { 
    ... 
    runtime 'mysql:mysql-connector-java:5.1.40' 
    compile "org.grails.plugins:hibernate5" 
    compile "org.hibernate:hibernate-core:5.1.1.Final" 
    compile "org.hibernate:hibernate-ehcache:5.1.1.Final" 
    runtime 'org.grails.plugins:database-migration:3.0.0' 
    compile 'org.liquibase:liquibase-core:3.5.3' 
    compile 'org.grails.plugins:mongodb' 
} 

Люди видели LiquiBase ошибка «PM: LiquiBase: Не удается использовать класс орг .grails.plugins.databasemigration.liquibase.GatabDatabase как услуга Liquibase, потому что у нее нет конструктора без аргументов "ранее в этих проблемах Github:

https://github.com/grails-plugins/grails-database-migration/issues/81

https://github.com/grails-plugins/grails-database-migration/issues/64#issuecomment-256739113

Но для них это было не нарушение ошибка.

Когда я попытался обновить Grails 3.2.3, я также увидел сообщение об ошибке Liquibase, но в остальном все остальное работало (журналы миграции также не были видны). Возможно, проблема кроется там, что Grails 3.2.3 использует Spring Boot 1.4.1, но Grails 3.2.5 использует Spring Boot 1.4.4.

В любом случае я потерян, и я надеюсь, что кто-то может мне помочь.

EDIT: Я использовал плагин для миграции базы данных, чтобы настроить мои таблицы базы данных, и я использую его для его изменения сейчас. Также я включил миграцию базы данных при запуске.

EDIT2: Кажется, что сама проблема не столько связана с миграцией базы данных

Я использую несколько источников данных (соответствующие части из application.yml):

hibernate: 
    cache: 
     queries: false 
     use_second_level_cache: true 
     use_query_cache: false 
     region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory 

dataSources: 
    dataSource: 
     pooled: true 
     jmxExport: true 
     driverClassName: com.mysql.jdbc.Driver 
     dialect: org.hibernate.dialect.MySQL5InnoDBDialect 
     dbCreate: none 
     properties: 
      testOnBorrow: true 
      validationQuery: SELECT 1 
    myOtherDataSource: 
     pooled: true 
     jmxExport: true 
     driverClassName: net.sourceforge.jtds.jdbc.Driver 
     dialect: org.hibernate.dialect.SQLServerDialect 
     dbCreate: none 

environments: 
    development: 
     dataSources: 
      dataSource: 
       url: jdbc:mysql://localhost/my_default_db?useUnicode=yes&characterEncoding=UTF-8&autoReconnect=true 
       username: my_user 
       password: my_pass 
      myOtherDataSource: 
       driverClassName: com.mysql.jdbc.Driver 
       dialect: org.hibernate.dialect.MySQL5InnoDBDialect 
       url: jdbc:mysql://localhost/my_other_db?useUnicode=yes&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10 
       username: my_user 
       password: my_pass 

Также я могу начать мое приложение, когда при запуске нет миграции базы данных, но затем я получаю разные ошибки, связанные с db:

ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - PooledConnection has already been closed. 
ERROR org.grails.web.errors.GrailsExceptionResolver - SQLException occurred when processing request: [GET] /my-endpoint 
...... 
Caused by: org.hibernate.exception.GenericJDBCException: could not prepare statement 
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) 
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) 
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182) 
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:148) 
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1934) 
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1903) 
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1881) 
at org.hibernate.loader.Loader.doQuery(Loader.java:925) 
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342) 
at org.hibernate.loader.Loader.doList(Loader.java:2622) 
at org.hibernate.loader.Loader.doList(Loader.java:2605) 
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2434) 
at org.hibernate.loader.Loader.list(Loader.java:2429) 
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:109) 
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1787) 
at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363) 
at org.grails.orm.hibernate.query.AbstractHibernateQuery.listForCriteria(AbstractHibernateQuery.java:700) 
at org.grails.orm.hibernate.query.AbstractHibernateQuery.list(AbstractHibernateQuery.java:690) 
at org.grails.datastore.gorm.finders.FindAllByFinder.invokeQuery(FindAllByFinder.java:54) 
at org.grails.datastore.gorm.finders.FindAllByFinder$1.doInSession(FindAllByFinder.java:48) 
at org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:318) 
at org.grails.datastore.gorm.finders.AbstractFinder.execute(AbstractFinder.java:42) 
at org.grails.datastore.gorm.finders.FindAllByFinder.doInvokeInternal(FindAllByFinder.java:45) 
at org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:174) 
at org.grails.datastore.gorm.finders.DynamicFinder.invoke(DynamicFinder.java:374) 
at org.grails.datastore.gorm.GormStaticApi$_methodMissing_closure2.doCall(GormStaticApi.groovy:169) 
..... 
Caused by: java.sql.SQLException: PooledConnection has already been closed. 
at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.invoke(LazyConnectionDataSourceProxy.java:376) 
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:240) 
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:240) 
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:146) 
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172) 
... 66 common frames omitted 

ответ

0

Я создал проблему для этого, с примером приложения, воспроизводящего такое поведение: https://github.com/grails/grails-core/issues/10477

[Update]:

я, наконец, понял это. Grails создаст платформуtransactionmanager для каждой конфигурации в dataSources и один для стандартного dataSource. В вашем примере это выглядит как [dataSource, myOtherDataSource, dataSource]. Это, очевидно, не то, что должно произойти. В документации GORM указано, что вы должны использовать:

dataSource: 
    .. 
dataSources: 
    myOtherDataSource: 

Это будет работать. Grails создает двух управляющих платформой, и это правильное поведение.

Но Databasemigration ожидает, что все источники данных будут в блоке конфигурации dataSources, поэтому он не сможет найти источник данных по умолчанию. Я создал патч для этого и создаст pullrequest для этого, как только будет исправлена ​​другая связанная ошибка;

Компания Grails не публикует DataSource по умолчанию с именем 'dataSource' в applicationContext в конфигурации Multi DataSource. Я добавил это к вопросу https://github.com/grails/grails-core/issues/10477

[Update 2]:

Я создал два запроса тянуть, чтобы решить эту проблему:

Grails-плагинов/Grails-БД-миграции/тянуть/123

и

Grails/Grails-ядро/тянуть/10478

Они решили проблему в моей системе. Я не мог опубликовать две ссылки, потому что у меня недостаточно репутации в соответствии с stackoverflow: S

+0

Я знаю, что Stack Overflow рекомендует не благодарить в комментариях, но все же благодарю вас за создание этой проблемы. – siimval

0

У меня почти такая же настройка, как у вас, и у меня нет проблем. Самые существенные изменения, которые у меня есть, это то, что я использую 5.1.3 Final для hibernate-core и ehcache и org.grails.plugins: hibernate5: 6.0.6. У меня нет зависимости mongodb.

  • У вас есть несколько источников данных?
  • Запускается ли он без запуска файла миграции?
+0

Да, у меня есть несколько разных источников данных. Но для миграции базы данных используется только один. Я поставлю соответствующие части из моего приложения.yml в своем первоначальном сообщении. Да, он запускается без запуска файлов миграции. Но затем я получаю всевозможные ошибки, связанные с соединениями db. Я поставлю содержательные строки примеров из stacktraces ошибок в моем исходном сообщении. – siimval

0

У меня почти такая же проблема с Grails-3.2.5/3.2.6. Пожалуйста, попробуйте Grails-3.2.4 и увидите, что проблема все еще встречается или нет.

0

Использование нескольких источников данных У меня такая же проблема. Это происходит только на Datasource по умолчанию, похоже, что GrailsTemplate пытается восстановить предыдущее состояние и не может этого сделать, поскольку транзакция была совершена.

org.springframework.transaction.HeuristicCompletionException: Heuristic completion: outcome state is rolled back; nested exception is org.springframework.transaction.IllegalTransactionStateException: Transaction is already completed - do not call commit or rollback more than once per transaction 
    at org.grails.transaction.ChainedTransactionManager.commit(ChainedTransactionManager.java:183) 
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:150) 
    at grails.transaction.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:93) 
    at grails.transaction.GrailsTransactionTemplate$execute.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) 
    at org.grails.plugins.databasemigration.DatabaseMigrationTransactionManager.withTransaction(DatabaseMigrationTransactionManager.groovy:31) 
    at org.grails.plugins.databasemigration.DatabaseMigrationTransactionManager$withTransaction.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) 
    at org.grails.plugins.databasemigration.DatabaseMigrationGrailsPlugin$_doWithApplicationContext_closure2.doCall(DatabaseMigrationGrailsPlugin.groovy:77) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) 
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) 
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024) 
    at groovy.lang.Closure.call(Closure.java:414) 
    at groovy.lang.Closure.call(Closure.java:430) 
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030) 
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) 
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2068) 
    at org.codehaus.groovy.runtime.dgm$164.invoke(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) 
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) 
    at org.grails.plugins.databasemigration.DatabaseMigrationGrailsPlugin.doWithApplicationContext(DatabaseMigrationGrailsPlugin.groovy:63) 
    at org.grails.plugins.DefaultGrailsPlugin.doWithApplicationContext(DefaultGrailsPlugin.java:523) 
    at org.grails.plugins.AbstractGrailsPluginManager.doPostProcessing(AbstractGrailsPluginManager.java:224) 
    at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:246) 
    at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) 
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:383) 
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:337) 
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:882) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762) 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:372) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:83) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:388) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:375) 
    at grails.boot.GrailsApp$run.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) 
    at scd.Application.main(Application.groovy:8) 
    Caused by: org.springframework.transaction.IllegalTransactionStateException: Transaction is already completed - do not call commit or rollback more than once per transaction 
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:704) 
    at org.grails.transaction.MultiTransactionStatus.commit(MultiTransactionStatus.java:73) 
    at org.grails.transaction.ChainedTransactionManager.commit(ChainedTransactionManager.java:156) 
    ... 56 common frames omitted 
+0

Я сделал небольшой тестовый пример, который не подвел. После того, как я скопировал в своих доменных классах исходный проект, он снова не удался. После некоторых проб и ошибок я обнаружил, что эта ошибка возникнет, если у вас есть 32 или более доменных класса. –