You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2012/02/13 15:57:16 UTC
svn commit: r1243546 -
/felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkStartLevelImpl.java
Author: rickhall
Date: Mon Feb 13 14:57:15 2012
New Revision: 1243546
URL: http://svn.apache.org/viewvc?rev=1243546&view=rev
Log:
Start level thread should catch exceptions to avoid terminating. (FELIX-3348)
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkStartLevelImpl.java
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkStartLevelImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkStartLevelImpl.java?rev=1243546&r1=1243545&r2=1243546&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkStartLevelImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkStartLevelImpl.java Mon Feb 13 14:57:15 2012
@@ -292,7 +292,24 @@ class FrameworkStartLevelImpl implements
if (request instanceof Integer)
{
// Set the new framework start level.
- m_felix.setActiveStartLevel(((Integer) request).intValue(), listeners);
+ try
+ {
+ m_felix.setActiveStartLevel(((Integer) request).intValue(), listeners);
+ }
+ catch (IllegalStateException ise)
+ {
+ // Thrown if global lock cannot be acquired, in which case
+ // just retry.
+ synchronized (m_requests)
+ {
+ m_requests.add(0, request);
+ }
+ }
+ catch (Exception ex)
+ {
+ m_felix.getLogger().log(Logger.LOG_ERROR,
+ "Unexpected problem setting active start level to " + request, ex);
+ }
}
else
{