camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raul Kripalani (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAMEL-4941) doStop() is called on Services which haven't been started when route autoStart=false
Date Wed, 25 Jan 2012 18:53:40 GMT

     [ https://issues.apache.org/jira/browse/CAMEL-4941?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Raul Kripalani updated CAMEL-4941:
----------------------------------

    Attachment: ServiceHelperHandleUninitialized.patch

Patch attached.
                
> doStop() is called on Services which haven't been started when route autoStart=false
> ------------------------------------------------------------------------------------
>
>                 Key: CAMEL-4941
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4941
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.9.0
>            Reporter: Raul Kripalani
>            Assignee: Raul Kripalani
>            Priority: Minor
>         Attachments: ServiceHelperHandleUninitialized.patch
>
>
> While unit testing the new camel-mongodb component, I realised that my consumer's doStop()
method is called even if the route had autoStart=false and was never started. 
> This occurs because when autoStartup=false, and the route has never been started manually,
the RouteService's state flags are all false. 
> During the cascading stopping routine, the ServiceHelper.isStopped() method is used to
determine whether a service should be stopped or not. Since this method only checks the stopped
and stopping flags, it returns false which indicates to the caller that the service is either
started or suspended.
> The stop routine will then proceed to call doStop on the service, which is erroneous.
> To fix this, I propose to add the following new logic to the ServiceHelper.isStopped()
method:
> {code:java}
>             // if none of the flags is true, consider that the service is uninitialized,
equating this status to stopped
>             if (!(service.isStarted() || service.isStarting() || 
>                     service.isStopped() || service.isStopping() || 
>                     service.isSuspended() || service.isSuspending())) 
>             {
>                 return true;
>             }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message