code: public boolean handleMessageReceivedFromClient(Message aMessage, boolean onlyIfInScope) {
          if ( ! isBreakpoint(aMessage, true, onlyIfInScope)) {
              return true;
          }
          
          // Do this outside of the semaphore loop so that the 'continue' button can apply to all queued break points
          // but be reset when the next break point is hit
          breakMgmt.breakpointHit();
          BreakEventPublisher.getPublisher().publishHitEvent(aMessage);
  
          synchronized(SEMAPHORE) {
              if (breakMgmt.isHoldMessage(aMessage)) {
                  BreakEventPublisher.getPublisher().publishActiveEvent(aMessage);
                  setBreakDisplay(aMessage, true);
                  waitUntilContinue(aMessage, true);
                  BreakEventPublisher.getPublisher().publishInactiveEvent(aMessage);
              }
          }
          breakMgmt.clearAndDisableRequest();
          return ! breakMgmt.isToBeDropped();
      }
docs: Do not call if in {@link Mode#safe}.
  
  @param aMessage
  @param onlyIfInScope
  @return False if message should be dropped.