[
https://issues.apache.org/jira/browse/FELIX-5249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15273384#comment-15273384
]
Alexander Klimetschek commented on FELIX-5249:
----------------------------------------------
The affected code seems to be introduced with FELIX-5207 and
[31a9d13b|https://github.com/apache/felix/commit/31a9d13be64fbcad14e2606b8d37d080deaccbb7].
It looks like the [TreeSet here is
empty|https://github.com/apache/felix/blob/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/LoadBalancerCustomizerFactoryTracker.java#L85].
It should probably check for {{set.isEmpty()}} before calling {{last()}},
which throws if empty. Another call to {{set.last()}} is on line 53, that
probably needs the same guarding. Something like this:
{code:java}
if (set.isEmpty()) {
highestReference = null;
} else {
highestReference = set.last();
}
{code}
> Enabling SSL for org.apache.felix.http fails to properly restart the jetty
> service
> ----------------------------------------------------------------------------------
>
> Key: FELIX-5249
> URL: https://issues.apache.org/jira/browse/FELIX-5249
> Project: Felix
> Issue Type: Bug
> Components: HTTP Service
> Affects Versions: http.jetty-3.1.6
> Reporter: Alexander Klimetschek
>
> When reconfiguring SSL for org.apache.felix.http.jetty (for a running system
> where jetty only is configured for an HTTP port), below error happens.
> Afterwards, jetty is not handling one or both ports anymore.
> Restarting the entire server/osgi environment fixes it. It only seems to be a
> problem the first time or depending on timing. This happens during a somewhat
> automatic installation procedure on an Apache Sling based server, in which
> the osgi configuration comes in via the sling jcr installer. If I manually
> reconfigure org.apache.felix.http.jetty in the felix webconsole and
> enable/disable SSL, I don't see the problem.
> This is actually with org.apache.felix.http.jetty 3.1.6.B002, which seems to
> be a special vendor release.
> {noformat}
> 05.05.2016 16:12:33.931 *ERROR* [CM Configuration Updater (Update:
> pid=org.apache.felix.http)] org.apache.felix.configadmin Service
> [org.apache.felix.cm.ConfigurationAdmin,10,
> [org.osgi.service.cm.ConfigurationAdmin]]
> [org.osgi.service.cm.ManagedService, id=57,
> bundle=36/launchpad:resources/install/5/org.apache.felix.http.jetty-3.1.6-B002.jar]:
> Unexpected problem updating configuration org.apache.felix.http
> (java.util.NoSuchElementException)
> java.util.NoSuchElementException: null
> at java.util.TreeMap.key(TreeMap.java:1221)
> at java.util.TreeMap.lastKey(TreeMap.java:292)
> at java.util.TreeSet.last(TreeSet.java:401)
> at
> org.apache.felix.http.jetty.internal.LoadBalancerCustomizerFactoryTracker.removedService(LoadBalancerCustomizerFactoryTracker.java:85)
> at
> org.apache.felix.http.jetty.internal.LoadBalancerCustomizerFactoryTracker.removedService(LoadBalancerCustomizerFactoryTracker.java:30)
> at
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:967)
> at
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:870)
> at
> org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:341)
> at org.osgi.util.tracker.ServiceTracker.close(ServiceTracker.java:377)
> at
> org.apache.felix.http.jetty.internal.JettyService.stopJetty(JettyService.java:225)
> at
> org.apache.felix.http.jetty.internal.JettyService.updated(JettyService.java:196)
> at
> org.apache.felix.http.jetty.internal.JettyManagedService$1.updated(JettyManagedService.java:46)
> at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
> at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
> at
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
> at
> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1753)
> at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
> at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)