No it's not

binder.bind(ISCMailer.class, SCMailerImpl.class);


On Thu, Dec 20, 2012 at 11:48 PM, Thiago H de Paula Figueiredo <
thiag...@gmail.com> wrote:

> Is this ISCMailer server perthread? Just guessing . . .
>
>
> On Thu, 20 Dec 2012 19:37:48 -0200, Muhammad Gelbana <m.gelb...@gmail.com>
> wrote:
>
>  One of my sub-modules registers a "Registry will shutdown" listener. That
>> listener is a service that needs to know if the app is shutting down and
>> thats how I'm doing this:
>>
>>
>>
>> @Startup
>>
>>>     public void startup(final ISCMailer mailer, RegistryShutdownHub
>>> registryShutdown) {
>>>         registryShutdown.**addRegistryWillShutdownListene**r(new
>>> Runnable() {
>>>             @Override
>>>             public void run() {
>>>                 mailer.shutdown();
>>>             }
>>>         });
>>>     }
>>>
>>
>>
>> The thing is that tapestry throws an exception whenever the app shuts
>> down:
>>
>> 23:29:04 ERROR (**RecursiveServiceCreationCheckW**
>> rapper.java:64)-[Thread-999]
>>
>>> Construction of service ISCMailer failed: Method
>>> org.apache.tapestry5.ioc.**internal.RegistryImpl.**
>>> getObject(RegistryImpl.java:**853)
>>> may no longer be invoked.
>>> org.apache.tapestry5.ioc.**internal.OperationException: Method
>>> org.apache.tapestry5.ioc.**internal.RegistryImpl.**
>>> getObject(RegistryImpl.java:**853)
>>> may no longer be invoked.
>>> at
>>> org.apache.tapestry5.ioc.**internal.OperationTrackerImpl.**
>>> logAndRethrow(**OperationTrackerImpl.java:121)
>>> at
>>> org.apache.tapestry5.ioc.**internal.OperationTrackerImpl.**
>>> invoke(OperationTrackerImpl.**java:88)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**PerThreadOperationTracker.**
>>> invoke(**PerThreadOperationTracker.**java:87)
>>> at
>>> org.apache.tapestry5.ioc.**internal.RegistryImpl.invoke(**
>>> RegistryImpl.java:1124)
>>> at
>>> org.apache.tapestry5.ioc.**internal.util.InternalUtils.**
>>> calculateParameters(**InternalUtils.java:293)
>>> at
>>> org.apache.tapestry5.ioc.**internal.util.InternalUtils$**
>>> 23.invoke(InternalUtils.java:**1488)
>>> at
>>> org.apache.tapestry5.ioc.**internal.util.InternalUtils$**
>>> 23.invoke(InternalUtils.java:**1483)
>>> at
>>> org.apache.tapestry5.ioc.**internal.OperationTrackerImpl.**
>>> invoke(OperationTrackerImpl.**java:74)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**PerThreadOperationTracker.**
>>> invoke(**PerThreadOperationTracker.**java:87)
>>> at
>>> org.apache.tapestry5.ioc.**internal.RegistryImpl.invoke(**
>>> RegistryImpl.java:1124)
>>> at
>>> org.apache.tapestry5.ioc.**internal.util.InternalUtils.**
>>> createConstructorConstructionP**lan(InternalUtils.java:1480)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**ConstructorServiceCreator.**
>>> getPlan(**ConstructorServiceCreator.**java:52)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**ConstructorServiceCreator.**
>>> createObject(**ConstructorServiceCreator.**java:61)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**OperationTrackingObjectCreator**
>>> $1.invoke(**OperationTrackingObjectCreator**.java:45)
>>> at
>>> org.apache.tapestry5.ioc.**internal.OperationTrackerImpl.**
>>> invoke(OperationTrackerImpl.**java:74)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**PerThreadOperationTracker.**
>>> invoke(**PerThreadOperationTracker.**java:87)
>>> at
>>> org.apache.tapestry5.ioc.**internal.RegistryImpl.invoke(**
>>> RegistryImpl.java:1124)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**OperationTrackingObjectCreator**
>>> .createObject(**OperationTrackingObjectCreator**.java:49)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**SingletonServiceLifecycle.**
>>> createService(**SingletonServiceLifecycle.**java:29)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**LifecycleWrappedServiceCreator**
>>> .createObject(**LifecycleWrappedServiceCreator**.java:46)
>>> at
>>> org.apache.tapestry5.ioc.**internal.AdvisorStackBuilder.**createObject(*
>>> *AdvisorStackBuilder.java:63)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**InterceptorStackBuilder.**
>>> createObject(**InterceptorStackBuilder.java:**54)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**RecursiveServiceCreationCheckW**
>>> rapper.createObject(**RecursiveServiceCreationCheckW**rapper.java:60)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**OperationTrackingObjectCreator**
>>> $1.invoke(**OperationTrackingObjectCreator**.java:45)
>>> at
>>> org.apache.tapestry5.ioc.**internal.OperationTrackerImpl.**
>>> invoke(OperationTrackerImpl.**java:74)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**PerThreadOperationTracker.**
>>> invoke(**PerThreadOperationTracker.**java:87)
>>> at
>>> org.apache.tapestry5.ioc.**internal.RegistryImpl.invoke(**
>>> RegistryImpl.java:1124)
>>> at
>>> org.apache.tapestry5.ioc.**internal.**OperationTrackingObjectCreator**
>>> .createObject(**OperationTrackingObjectCreator**.java:49)
>>> at
>>> org.apache.tapestry5.ioc.**internal.services.**JustInTimeObjectCreator.*
>>> *obtainObjectFromCreator(**JustInTimeObjectCreator.java:**66)
>>> at
>>> org.apache.tapestry5.ioc.**internal.services.**JustInTimeObjectCreator.*
>>> *createObject(**JustInTimeObjectCreator.java:**54)
>>> at $ISCMailer_6d6446fae0659.**delegate(Unknown Source)
>>> at $ISCyMailer_6d6446fae0659.**shutdown(Unknown Source)
>>> at com.sc.ipk.services.**CoreModule$1.run(CoreModule.**java:100)
>>>
>>
>>
>> Shouldn't it be safe to invoke that method (shutdown) on an injected
>> service since this is expected to run before the registry shuts down ?
>>
>
>
> --
> Thiago H. de Paula Figueiredo
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: 
> users-unsubscribe@tapestry.**apache.org<users-unsubscr...@tapestry.apache.org>
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to