[ 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)