Hello,
I wrote a simple application using In-Memory EntityStore and RdfIndexing.
Now I want to
switch over to SQL Index/Store but receive the following exception :
java.lang.IllegalStateException: java.lang.StackOverflowError
at
org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:103)
at
org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56)
at
org.qi4j.runtime.service.ServicesInstance.activate(ServicesInstance.java:57)
at
org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78)
at
org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56)
at
org.qi4j.runtime.structure.ModuleInstance.activate(ModuleInstance.java:281)
at
org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78)
at
org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56)
at
org.qi4j.runtime.structure.LayerInstance.activate(LayerInstance.java:175)
at
org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:78)
at
org.qi4j.runtime.activation.ActivationDelegate.activate(ActivationDelegate.java:56)
at
org.qi4j.runtime.structure.ApplicationInstance.activate(ApplicationInstance.java:121)
at
com.somepackage.qi4j.application.abc.bootstrap.AbcApplication.createApplication(AbcApplication.java:63)
at com.somepackage.qi4j.application.abc.Main.setUp(Main.java:15)
at com.somepackage.qi4j.application.abc.Main.main(Main.java:47)
Caused by: java.lang.StackOverflowError
at java.lang.Long.valueOf(Long.java:554)
at $Proxy36.newUnitOfWork(Unknown Source)
at
org.qi4j.spi.entitystore.ConcurrentModificationCheckConcern.newUnitOfWork(ConcurrentModificationCheckConcern.java:49)
at
org.qi4j.entitystore.memory.MemoryEntityStoreService.newUnitOfWork(Unknown
Source)
at
org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.getConfiguration(AbstractDataSourceServiceImporterMixin.java:130)
at
org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:77)
at
org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:1)
at
org.qi4j.library.sql.dbcp.DBCPDataSourceServiceImporter.importService(Unknown
Source)
at
org.qi4j.api.service.importer.ServiceInstanceImporter.importService(ServiceInstanceImporter.java:48)
at $Proxy22.notifyChanges(Unknown Source)
at
org.qi4j.spi.entitystore.StateChangeNotificationConcern$1.commit(StateChangeNotificationConcern.java:42)
at
org.qi4j.spi.entitystore.ConcurrentModificationCheckConcern$ConcurrentCheckingEntityStoreUnitOfWork$1.commit(ConcurrentModificationCheckConcern.java:103)
at
org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.getConfiguration(AbstractDataSourceServiceImporterMixin.java:154)
at
org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:77)
at
org.qi4j.library.sql.datasource.AbstractDataSourceServiceImporterMixin.importService(AbstractDataSourceServiceImporterMixin.java:1)
at
org.qi4j.library.sql.dbcp.DBCPDataSourceServiceImporter.importService(Unknown
Source)
at
org.qi4j.api.service.importer.ServiceInstanceImporter.importService(ServiceInstanceImporter.java:48)
at $Proxy22.notifyChanges(Unknown Source)
Looks like as a endless loop, but I;m not able to figure out the reason.
Here also the assembly code
that produce the above exception.
private void assembleInfrastructureLayer( LayerAssembly
infrastructureLayer )
throws AssemblyException
{
// 1.) SQL Indexing
ModuleAssembly indexingModule = infrastructureLayer.module(
"INFRASTRUCTURE-Indexing" );
indexingModule
.objects(
EntityStateSerializer.class,
EntityTypeSerializer.class );
ModuleAssembly config = indexingModule.layer().module( "config"
);
config.services( MemoryEntityStoreService.class ).visibleIn(
Visibility.module );
// EntityStore
indexingModule.services( MemoryEntityStoreService.class,
UuidIdentityGeneratorService.class ).visibleIn( Visibility.application );
// DataSourceService + Index/Query's DataSource
new DBCPDataSourceServiceAssembler(
"datasource-service-postgres",
Visibility.module,
config,
Visibility.layer ).assemble(
indexingModule );
DataSourceAssembler dsAssembler = new DataSourceAssembler(
"datasource-service-postgres",
"datasource-postgres",
Visibility.module,
DataSources.newDataSourceCircuitBreaker() );
// Index/Query
new PostgreSQLAssembler( Visibility.application, dsAssembler
).assemble( indexingModule );
config.entities( SQLConfiguration.class ).visibleIn(
Visibility.layer );
// Always re-index because of possible different app structure
of multiple tests.
indexingModule.services(
ReindexingStrategy.ReindexingStrategyService.class ).withMixins(
ReindexingStrategy.AlwaysNeed.class ).identifiedBy( "reindexer" );
config.entities( ReindexerConfiguration.class ).visibleIn(
Visibility.layer );
// 2.) In-memory Entity Store
ModuleAssembly entityStoreModule = infrastructureLayer.module(
"INFRASTRUCTURE-EntityStore" );
entityStoreModule
.services(
MemoryEntityStoreService.class,
UuidIdentityGeneratorService.class )
.instantiateOnStartup()
.visibleIn( application );
}
I try already many combinations - without success. Would be great if one of
you guys
can give me an idea what is wrong with my code.
Thanks,
Cheers,
Jiri
--
View this message in context:
http://qi4j-dev.23929.n6.nabble.com/SQL-Indexing-SQL-EntityStore-tp7140.html
Sent from the Qi4j-dev mailing list archive at Nabble.com.
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev