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.

Reply via email to