SLING-6856 : NPE in scheduler whiteboard handler
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1795171 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/commons/scheduler/impl/WhiteboardHandler.java b/src/main/java/org/apache/sling/commons/scheduler/impl/WhiteboardHandler.java
index c741e26..ed02e48 100644
--- a/src/main/java/org/apache/sling/commons/scheduler/impl/WhiteboardHandler.java
+++ b/src/main/java/org/apache/sling/commons/scheduler/impl/WhiteboardHandler.java
@@ -48,7 +48,7 @@
/** Default logger. */
private final Logger logger = LoggerFactory.getLogger(this.getClass());
- @Reference
+ @Reference(name = "first") // by using this name this reference is set first (alphabetic order -> order in XML)
private QuartzScheduler scheduler;
private final Map<Long, String> idToNameMap = new ConcurrentHashMap<>();
@@ -200,7 +200,8 @@
* @param reference The service reference.
*/
void unregister(final ServiceReference<?> reference) {
- final String name = idToNameMap.remove(getLongProperty(reference, Constants.SERVICE_ID));
+ final Long key = getLongProperty(reference, Constants.SERVICE_ID);
+ final String name = idToNameMap.remove(key);
if ( name != null ) {
this.scheduler.unschedule(reference.getBundle().getBundleId(), name);
}