code: private Message createMessageProxy(Message msgObject) {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "createMessageProxy", msgObject);
  
          Message retObj;
          try {
  
              retObj = (Message) Proxy.newProxyInstance(msgObject.getClass().getClassLoader(),
                                                        msgObject.getClass().getInterfaces(),
                                                        new MessageProxyInvocationHandler(msgObject));
          } catch (Exception e) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(tc, "Exception caught while trying to createMessageProxy ", e);
  
              //if any exception .. return the same msgObject.
              retObj = msgObject;
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "createMessageProxy", retObj);
  
          return retObj;
  
      }
docs: This method creates proxy for the given message object. This is used only in Async Send..
  Hence this method is called only by client environments.
  
  @param msgObject
  @return Message interface implementation of SIBus.