Author: fmeschbe
Date: Tue Jan 26 15:57:30 2010
New Revision: 903286
URL: http://svn.apache.org/viewvc?rev=903286&view=rev
Log:
FELIX-2009 ensure console servlet is rebound to the HttpService only if
required and also unbound with the old location and then bound with the new
location
Modified:
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
Modified:
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
URL:
http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java?rev=903286&r1=903285&r2=903286&view=diff
==============================================================================
---
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
(original)
+++
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
Tue Jan 26 15:57:30 2010
@@ -853,10 +853,10 @@
}
// get the web manager root path
- webManagerRoot = this.getProperty( config, PROP_MANAGER_ROOT,
DEFAULT_MANAGER_ROOT );
- if ( !webManagerRoot.startsWith( "/" ) )
+ String newWebManagerRoot = this.getProperty( config,
PROP_MANAGER_ROOT, DEFAULT_MANAGER_ROOT );
+ if ( !newWebManagerRoot.startsWith( "/" ) )
{
- webManagerRoot = "/" + webManagerRoot;
+ newWebManagerRoot = "/" + newWebManagerRoot;
}
// get enabled plugins
@@ -881,13 +881,22 @@
}
// might update http service registration
- HttpService httpService = this.httpService;
- if ( httpService != null )
+ if ( !newWebManagerRoot.equals( this.webManagerRoot ) )
{
- synchronized ( this )
+ HttpService httpService = this.httpService;
+ if ( httpService != null )
{
- unbindHttpService( httpService );
- bindHttpService( httpService );
+ synchronized ( this )
+ {
+ // unbind old location first
+ unbindHttpService( httpService );
+
+ // switch location
+ this.webManagerRoot = newWebManagerRoot;
+
+ // bind new location now
+ bindHttpService( httpService );
+ }
}
}
}