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

Carsten Ziegeler resolved FELIX-5199.
-------------------------------------
    Resolution: Fixed

Moving the boolean before registering should actually solve the problem, no one 
else is able to get the service until it is registered, therefore setting it to 
true before registering works as expected

> Race condition in HttpServiceFactory.getService() causing exception
> -------------------------------------------------------------------
>
>                 Key: FELIX-5199
>                 URL: https://issues.apache.org/jira/browse/FELIX-5199
>             Project: Felix
>          Issue Type: Bug
>          Components: HTTP Service
>    Affects Versions: http.base-3.0.6
>            Reporter: David Bosschaert
>            Assignee: David Bosschaert
>             Fix For: http.base-3.0.8
>
>         Attachments: felix-5199.patch
>
>
> The HttpServiceFactory.getService() is as follows:
> {code}
>     public HttpService getService(final Bundle bundle, final 
> ServiceRegistration<HttpService> reg)
>     {
>         final ServletContext servletContext = this.context;
>         if ( servletContext != null ) {
>             return new PerBundleHttpServiceImpl(bundle,
>                     this.sharedHttpService,
>                     this.context,
>                     this.contextAttributeListenerManager,
>                     this.sharedContextAttributes,
>                     this.requestListenerManager,
>                     this.requestAttributeListenerManager);
>         }
>         return null;
>     }{code}
> However it is possible that this.context is set to {{null}} after the check 
> for {{null}} is done but before the constructor is called causing a null 
> servlet context to be passed to {{PerBundleHttpServiceImpl}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to