[ https://issues.apache.org/jira/browse/FELIX-3743?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard S. Hall closed FELIX-3743. ---------------------------------- > Potential endless loop setting the active framework startlevel > -------------------------------------------------------------- > > Key: FELIX-3743 > URL: https://issues.apache.org/jira/browse/FELIX-3743 > Project: Felix > Issue Type: Bug > Components: Framework > Affects Versions: framework-4.0.2 > Reporter: Felix Meschberger > Assignee: Felix Meschberger > Fix For: framework-4.2.0 > > > We experience an issue with setting the framework startlevel in the > Felix.setActiveStartLevel(int, FrameworkListener[]) method. > On line 1216 the bundle lock is acquired. If this fails with an > IllegalStateException the loop just continues. But the bundle remains in the > m_startLevelBundles set and is retried later. In the case of an uninstalled > bundle, this situation will not change and the method is probabl going into > an endless loop. > Would it make sense to remove the bundle from the m_startLevelBundles set in > the catch block starting line 1223 if the bundle has been uninstalled ? > Proposed patch: > Index: Felix.java > =================================================================== > --- Felix.java (revision 1404016) > +++ Felix.java (working copy) > @@ -1227,6 +1227,14 @@ > Logger.LOG_ERROR, > "Error locking " + > tuple.m_bundle._getLocation(), ex); > } > + else > + { > + synchronized (m_startLevelBundles) > + { > + m_startLevelBundles.remove(tuple); > + bundlesRemaining = > !m_startLevelBundles.isEmpty(); > + } > + } > continue; > } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira