docs: public synchronized int putClientMessage(SIBusMessage message, CommsConnection commsConnection, Conversation conversation)
        throws SIConnectionDroppedException, SIResourceException
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "putClientMessage",
                                             new Object[]{message, commsConnection, conversation});
  
        int msgLength = 0;
        try
        {
           msgLength = putMessage((JsMessage) message, commsConnection, conversation);
        }
        catch (UnsupportedEncodingException e)
        {
           FFDCFilter.processException(e, CLASS_NAME + ".putClientMessage",
                                       CommsConstants.COMMSBYTEBUFFER_PUTCLIENTMSG_01,
                                       this);
  
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Caught unsupported encoding exception", e);
           throw new SIResourceException(e);
        }
        catch (MessageCopyFailedException e)
        {
           FFDCFilter.processException(e, CLASS_NAME + ".putClientMessage",
                                       CommsConstants.COMMSBYTEBUFFER_PUTCLIENTMSG_02,
                                       this);
  
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Caught message copy failed exception", e);
           throw new SIResourceException(e);
        }
        catch (IncorrectMessageTypeException e)
        {
           FFDCFilter.processException(e, CLASS_NAME + ".putClientMessage",
                                       CommsConstants.COMMSBYTEBUFFER_PUTCLIENTMSG_03,
                                       this);
  
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Caught incorrect message type exception", e);
           throw new SIResourceException(e);
        }
        catch (MessageEncodeFailedException e)
        {
           FFDCFilter.processException(e, CLASS_NAME + ".putClientMessage",
                                       CommsConstants.COMMSBYTEBUFFER_PUTCLIENTMSG_04,
                                       this);
  
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Caught message encoding failed exception", e);
           throw new SIResourceException(e);
        }
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "putClientMessage", msgLength);
        return msgLength;
     }