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);
         }