docs: public final boolean addDeliveryDelayable(DeliveryDelayable deliveryDelayable) throws SevereMessageStoreException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          {
              SibTr.entry(tc, "addDeliveryDelayable",
                          "objId="
                                          + (deliveryDelayable == null ? "null" : String.valueOf(deliveryDelayable.deliveryDelayableGetID()))
                                          + " addEnabled="
                                          + addEnabled);
          }
  
          boolean reply = false;
  
          // Ignore this entry if the deliveryDelayManager has ended or the given entry is null
          if (addEnabled && deliveryDelayable != null)
          {
              long deliveryDelayTime = deliveryDelayable.deliveryDelayableGetDeliveryDelayTime();
  
              DeliveryDelayableReference delayedDeliverableRef = new DeliveryDelayableReference(deliveryDelayable);
              delayedDeliverableRef.setDeliveryDelayTime(deliveryDelayTime);
  
              // Ignore this entry if the referenced item has already gone from the message store. 
              if (deliveryDelayable.deliveryDelayableIsInStore())
              {
                  synchronized (lockObject)
                  {
                      // Add the deliveryDelayable to the deliveryDelay index
                      reply = deliveryDelayIndex.put(delayedDeliverableRef);
                      if (reply)
                      {
                          boolean scheduled = false;
  
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                              SibTr.debug(this, tc, "Before scheduleAlarm", "deliveryDelayIndexSize=" + deliveryDelayIndex.size() + " runEnabled" + runEnabled);
                          }
  
                          if (runEnabled && deliveryDelayIndex.size() == 1) // We just added the first entry
                          {
                              scheduleAlarm(interval);
                              scheduled = true;
                          }
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          {
                              SibTr.debug(tc, "Added: DDT=" + delayedDeliverableRef.getDeliveryDelayTime() + ", objId=" + delayedDeliverableRef.getID() + ", scheduled=" + scheduled);
                          }
                      }
                      else
                      {
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          {
                              SibTr.debug(tc, "Duplicate deliveyDelayable: DDT=" + delayedDeliverableRef.getDeliveryDelayTime() + ", objId=" + delayedDeliverableRef.getID());
                          }
                          runEnabled = false; // End the DeliveryDelayManagerLock daemon thread
                          Object[] o = { delayedDeliverableRef.getDeliveryDelayTime() + " : " + delayedDeliverableRef.getID() };
                          SevereMessageStoreException e = new SevereMessageStoreException("DUPLICATE_DELIVERYDELAYABLE_SIMS2010", o);
                          lastException = e;
                          lastExceptionTime = timeNow();
                          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                              SibTr.exit(tc, "addDeliveryDelayable");
                          throw e;
                      }
                  }
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "addDeliveryDelayable", "reply=" + reply);
          return reply;
      }