[ 
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