This is interesting. It seems the lifecycle on component is too high in
granularity. We might to have go down to the providers level for each
endpoint/endpoint reference and implementation.
Thanks,
Raymond
--------------------------------------------------
From: "Greg Dritschler (JIRA)" <[email protected]>
Sent: Wednesday, February 17, 2010 9:23 AM
To: <[email protected]>
Subject: [jira] Updated: (TUSCANY-3466) Cannot stop component or its
services and references if one of them fails to start
[
https://issues.apache.org/jira/browse/TUSCANY-3466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Greg Dritschler updated TUSCANY-3466:
-------------------------------------
Description:
CompositeActivator.start(Component) starts the component services,
references, and the component itself via their providers. If all of the
providers complete successfully, it sets a flag in the component that it
has started.
If one of the providers encounters a problem and throws an exception, then
the 'started' flag in the component won't be set. When
CompositeActivator.stop(Component) is called, it first checks if the
component 'started' flag is on. If not, it returns without doing
anything. This means that providers that DID start successfully are not
called to perform stop processing. This leaves these providers in an
incorrect state, and may prevent the provider from successfully starting
subsequent times.
CompositeActivator.stop(Component) needs to handle the providers that were
started and only skip those that weren't started.
was:
CompositeActivator.start(Component) starts the component services,
references, and the component itself via their providers. If all of the
providers complete successfully, it sets a flag in the component that it
has started.
If one of the providers encounters a problem and throws an exception, then
the 'started' flag in the component flag won't be set. When
CompositeActivator.stop(Component) is called, it first checks if the
component 'started' flag is on. If not, it returns without doing
anything. This means that providers that DID start successfully are not
called to perform stop processing. This leaves these providers in an
incorrect state, and may prevent the provider from successfully starting
subsequent times.
CompositeActivator.stop(Component) needs to handle the providers that were
started and only skip those that weren't started.
Cannot stop component or its services and references if one of them fails
to start
----------------------------------------------------------------------------------
Key: TUSCANY-3466
URL: https://issues.apache.org/jira/browse/TUSCANY-3466
Project: Tuscany
Issue Type: Bug
Affects Versions: Java-SCA-1.5
Reporter: Greg Dritschler
Priority: Minor
CompositeActivator.start(Component) starts the component services,
references, and the component itself via their providers. If all of the
providers complete successfully, it sets a flag in the component that it
has started.
If one of the providers encounters a problem and throws an exception,
then the 'started' flag in the component won't be set. When
CompositeActivator.stop(Component) is called, it first checks if the
component 'started' flag is on. If not, it returns without doing
anything. This means that providers that DID start successfully are not
called to perform stop processing. This leaves these providers in an
incorrect state, and may prevent the provider from successfully starting
subsequent times.
CompositeActivator.stop(Component) needs to handle the providers that
were started and only skip those that weren't started.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.