code: @Override
    public final void deliver(final MessageAmp msg, 
                              Outbox outbox)
        throws Exception
    {
      final HeadersAmp headers = msg.getHeaders();
      
      if (headers != null && headers.getSize() > 0) {
        OutboxAmp outboxAmp = (OutboxAmp) outbox;
        
        outboxAmp.message(msg);
  
        try {
          msg.invoke(_inbox, _actor);
        } catch (ServiceException e) {
          log.fine(e.toString());
        } catch (Throwable e) {
          log.log(Level.WARNING, this + " " + e.toString(), e);
        } finally {
          outboxAmp.message(null);
        }
      }
      else {
        try {
          msg.invoke(_inbox, _actor);
        } catch (ServiceException e) {
          log.fine(e.toString());
        } catch (Throwable e) {
          log.log(Level.WARNING, this + " " + e.toString(), e);
        }
      }
    }
docs: /*
  @Override
  public void initOutbox(Outbox<MessageAmp> outbox)
  {
  Objects.requireNonNull(outbox);
  
  super.initOutbox(outbox);
  
  _outbox = (OutboxAmp) outbox;
  
  _outbox.setInbox(_inbox);
  
  _messageContext = new MessageInboxDeliver(_inbox, _outbox);
  _outbox.setMessage(_messageContext);
  }