docs: public boolean writeSilence(SIMPMessage m) throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(this, tc, "writeSilence", new Object[] { m });
  
      boolean sendMessage = true;
      JsMessage jsMsg = m.getMessage();
  
      // There may be Completed ticks after the Value, if so then
      // write these into the stream too
      long stamp = jsMsg.getGuaranteedValueValueTick();
      long start = jsMsg.getGuaranteedValueStartTick();
      long end  = jsMsg.getGuaranteedValueEndTick();
  
      if (end < stamp)
        end = stamp;
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
      {
        SibTr.debug(tc, "writeSilence from: " + start + " to " + end + " on Stream " +  stream);
      }
  
      TickRange tr =
        new TickRange(
          TickRange.Completed,
          start,
          end);
  
      // used to send message if it moves inside inDoubt window
      List sendList = null;
      synchronized (this)
      {
        oststream.writeCompletedRange(tr);
  
        sendMessage = msgCanBeSent(stamp, false);
  
        if( sendMessage )
        {
          if ( stamp > lastMsgSent )
            lastMsgSent = stamp;
        }
      
        // Check whether removing this message means we have
        // a message to send
        TickRange tr1 = null;
        if ((tr1 = msgRemoved(stamp, oststream, null)) != null)
        {
          sendList = new ArrayList();
          sendList.add(tr1);
          if(tr1.valuestamp > lastMsgSent)
            lastMsgSent = tr1.valuestamp;
        }
        
        // SIB0105
        // Message silenced so reset the health state if we've solved a blocking problem
        if (blockedStreamAlarm != null)
          blockedStreamAlarm.checkState(false); 
      } // synchronized
  
      // Do the send outside of the synchronise
      if (sendList != null)
      {
        sendMsgs( sendList, false );
      }
   
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "writeSilence");
  
      return sendMessage;
    }