OK, so this is related to ISIS-830.

This ticket requires that the EventBusService is initialized early on (in
order to post lifecycle events for any domain services that create objects
as part of their own @PostConstruct).  Previously the event bus service
would be initialized quite late in the day.

However, other domain services may be subscribers which register with the
event bus service.  This is typically done in their @PostConstruct too.

The event bus service is insisting that all subscriber domain services
register themselves prior to any domain services that start to create
objects.  That way, no subscribers will "miss" any events.

This can be done using @DomainServiceLayout(menuOrder=...).

To relax this rule, use:

isis.services.eventbus.allowLateRegistration=false

See also [1], [2]


I'll add something to the migration notes for 1.10.0-SNAPSHOT.

HTH
Dan


[1] http://isis.apache.org/guides/rg.html#_rg_runtime_configuring-core
[2]
http://isis.apache.org/guides/rg.html#_rg_services-api_manpage-EventBusService_Configuration





On 3 November 2015 at 08:46, Stephen Cameron <steve.cameron...@gmail.com>
wrote:

> This is the error I am seeing at present
>
> seed-users-and-roles-fixture-script                         : EXEC
> org.isisaddons.module.security.seed.SeedUsersAndRolesFixtureScript
> seed-users-and-roles-fixture-script/global-tenancy          : EXEC
> org.isisaddons.module.security.seed.scripts.GlobalTenancy
> seed-users-and-roles-fixture-script/global-tenancy/Global   : Global
>
> seed-users-and-roles-fixture-script/isis-module-security-admin-role-and-permissions
> : EXEC
>
> org.isisaddons.module.security.seed.scripts.IsisModuleSecurityAdminRoleAndPermissions
>
> seed-users-and-roles-fixture-script/isis-module-security-fixture-role-and-permissions
> : EXEC
>
> org.isisaddons.module.security.seed.scripts.IsisModuleSecurityFixtureRoleAndPermissions
>
> seed-users-and-roles-fixture-script/isis-module-security-regular-user-role-and-permissions
> : EXEC
>
> org.isisaddons.module.security.seed.scripts.IsisModuleSecurityRegularUserRoleAndPermissions
> seed-users-and-roles-fixture-script/isis-module-security-admin-user
> : EXEC
> org.isisaddons.module.security.seed.scripts.IsisModuleSecurityAdminUser
>
> seed-users-and-roles-fixture-script/isis-applib-fixture-results-role-and-permissions
> : EXEC
>
> org.isisaddons.module.security.seed.scripts.IsisApplibFixtureResultsRoleAndPermissions
> 19:41:19,478  [IsisTransaction      main       INFO ]  abort transaction
> IsisTransaction@5dc1597f[state=MUST_ABORT,commands=1]
> 19:41:19,495  [IsisWicketApplication main       ERROR]  Failed to
> initialize
> com.google.inject.ProvisionException: Guice provision errors:
>
> 1) Error in custom provider,
>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManagerException:
> java.lang.IllegalStateException: Events have already been posted; too late
> to register any further (singleton) subscribers
>   at
>
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:139)
>   at
>
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:139)
>   while locating org.apache.isis.core.runtime.system.IsisSystem
>     for field at
>
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:151)
>   while locating domainapp.webapp.DomainApplication
>
> 1 error
>     at
>
> com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:451)
>     at
>
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:65)
>     at
>
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
>     at
>
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
>     at domainapp.webapp.DomainApplication.init(DomainApplication.java:64)
>     at org.apache.wicket.Application.initApplication(Application.java:823)
>     at
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
>     at
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
>     at
> org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:137)
>     at
>
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:854)
>     at
>
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:346)
>     at
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1368)
>     at
>
> org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:320)
>     at
>
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1335)
>     at
>
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:735)
>     at
>
> org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:259)
>     at
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:511)
>     at
>
> org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:403)
>     at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>     at
>
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>     at
>
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>     at
>
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>     at
>
> org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
>     at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>     at
>
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>     at
>
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>     at
>
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>     at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>     at
>
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>     at org.eclipse.jetty.server.Server.start(Server.java:405)
>     at
>
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
>     at
>
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>     at org.eclipse.jetty.server.Server.doStart(Server.java:372)
>     at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>     at
>
> org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:457)
>     at
>
> org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:328)
>     at
> org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:170)
>     at
>
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
>     at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
>     at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
>     at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
>     at
>
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
>     at
>
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
>     at
>
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
>     at
>
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
>     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
>     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
>     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
>     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
>     at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
>     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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
>     at
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
>     at
>
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
>     at
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
> Caused by:
>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManagerException:
> java.lang.IllegalStateException: Events have already been posted; too late
> to register any further (singleton) subscribers
>     at
>
> org.apache.isis.core.runtime.system.IsisSystem.initializeServices(IsisSystem.java:245)
>     at
> org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:209)
>     at
>
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
>     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
> com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
>     at
>
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>     at
>
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>     at
>
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
>     at
>
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>     at com.google.inject.Scopes$1$1.get(Scopes.java:65)
>     at
>
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>     at
>
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
>     at
>
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
>     at
>
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
>     at
>
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
>     at
>
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
>     at
>
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
>     at
>
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
>     ... 56 more
> Caused by: java.lang.IllegalStateException: Events have already been
> posted; too late to register any further (singleton) subscribers
>     at
>
> org.apache.isis.core.runtime.services.eventbus.EventBusServiceDefault.register(EventBusServiceDefault.java:66)
>     at
>
> org.apache.isis.applib.AbstractSubscriber.postConstruct(AbstractSubscriber.java:36)
>     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.apache.isis.core.commons.lang.MethodExtensions.invoke(MethodExtensions.java:53)
>     at
>
> org.apache.isis.core.commons.lang.MethodExtensions.invoke(MethodExtensions.java:47)
>     at
>
> org.apache.isis.core.metamodel.specloader.ServiceInitializer.postConstruct(ServiceInitializer.java:118)
>     at
>
> org.apache.isis.core.runtime.system.IsisSystem.initializeServices(IsisSystem.java:241)
>     ... 76 more
> 19:41:19,524  [WicketFilter         main       ERROR]  The initialization
> of an application with name 'WicketFilter' has failed.
>
> On Tue, Nov 3, 2015 at 7:31 PM, Stephen Cameron <
> steve.cameron...@gmail.com>
> wrote:
>
> > I am having problems configuring it, will have another go as I can see
> the
> > demo working but I am assuming the installation instructions are still
> the
> > same.
> >
> >
> >
>

Reply via email to