Author: ivol37 at gmail.com
Date: Wed Dec 1 08:58:36 2010
New Revision: 458
Log:
[AMDATU-189] Improved bundle state check, which could fail at normal statrup
Modified:
trunk/amdatu-web/jsp/src/main/java/org/amdatu/web/jsp/service/ResourceProviderListener.java
Modified:
trunk/amdatu-web/jsp/src/main/java/org/amdatu/web/jsp/service/ResourceProviderListener.java
==============================================================================
---
trunk/amdatu-web/jsp/src/main/java/org/amdatu/web/jsp/service/ResourceProviderListener.java
(original)
+++
trunk/amdatu-web/jsp/src/main/java/org/amdatu/web/jsp/service/ResourceProviderListener.java
Wed Dec 1 08:58:36 2010
@@ -98,7 +98,8 @@
onRemoved(m_resourceProviders.get(0));
}
m_httpContextComponent.stop();
- } finally {
+ }
+ finally {
destructionLock.unlock();
}
}
@@ -108,9 +109,9 @@
WriteLock destructionLock = m_destructionLock.writeLock();
destructionLock.lock();
try {
- // After retrieving the destruction lock, be sure the bundle is
not being stopped (we might have been waiting for
+ // After retrieving the destruction lock, be sure the bundle is
not being stopped (we might have been waiting for
// the destruction lock to be released by the destroy() method)
- if (m_bundleContext.getBundle().getState() == Bundle.ACTIVE) {
+ if (m_bundleContext.getBundle().getState() != Bundle.STOPPING) {
Dictionary<String, String> initParams = new Hashtable<String,
String>();
String servletAlias = getServletAlias(provider);
@@ -120,7 +121,8 @@
component.setImplementation(jspServlet);
// Add service dependencies
-
component.add(m_dependencyManager.createServiceDependency().setService(LogService.class).setRequired(true));
+
component.add(m_dependencyManager.createServiceDependency().setService(LogService.class).setRequired(
+ true));
// Add the component to the dependency manager
m_components.put(normalizeResourceId(provider), component);
@@ -142,7 +144,14 @@
return;
}
}
- } finally {
+ else {
+ m_logService.log(LogService.LOG_INFO, "Bundle state of JSP
bundle is '"
+ + m_bundleContext.getBundle().getState()
+ + "', JSP servlet registration ignored for resource
provider " + provider.getResourceId());
+ return;
+ }
+ }
+ finally {
destructionLock.unlock();
}
}