You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2015/09/28 19:19:12 UTC
svn commit: r1705725 -
/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java
Author: cziegeler
Date: Mon Sep 28 17:19:11 2015
New Revision: 1705725
URL: http://svn.apache.org/viewvc?rev=1705725&view=rev
Log:
FELIX-5057 : Race condition between getService and stopping the http service
Modified:
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java?rev=1705725&r1=1705724&r2=1705725&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java Mon Sep 28 17:19:11 2015
@@ -115,13 +115,13 @@ public final class HttpServiceFactory
public void stop()
{
- this.context = null;
if ( this.httpServiceReg != null )
{
this.httpServiceReg.unregister();
this.httpServiceReg = null;
}
+ this.context = null;
this.sharedHttpService = null;
this.contextAttributeListenerManager.close();
@@ -134,13 +134,17 @@ public final class HttpServiceFactory
@Override
public HttpService getService(final Bundle bundle, final ServiceRegistration<HttpService> reg)
{
- return new PerBundleHttpServiceImpl(bundle,
- this.sharedHttpService,
- this.context,
- this.contextAttributeListenerManager,
- this.sharedContextAttributes,
- this.requestListenerManager,
- this.requestAttributeListenerManager);
+ 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;
}
@Override