code: @Override
      public final void setNonNullProperty(String name, Object value) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "setNonNullProperty", new Object[] { name, value });
  
          // For 'user' properties.....
          if (!name.startsWith(JMS_PREFIX)) {
  
              /* Maelstrom's transportVersion has its own field - the other user ones */
              /* are in the JmsPropertyMap */
              if (name.equals(MfpConstants.PRP_TRANSVER)) {
                  setTransportVersion(value);
              }
              else {
                  getJmsUserPropertyMap().put(name, value);
              }
  
              /* Remove it from the other Property Map if it is there */
              if (mayHaveOtherUserProperties()) {
                  getOtherUserPropertyMap().remove(name);
              }
          }
  
          // For JMS_IBM_ properties.....
          else {
              if (name.startsWith(JMS_IBM_MQMD_PREFIX)) {
                  setMQMDProperty(name, value);
              } else {
                  getJmsSystemPropertyMap().put(name, value);
                  // JMS_IBM_Character_Set and JMS_IBM_Encoding need to be stashed in the
                  // message itself too.                                          d395685
                  if (name.equals(SIProperties.JMS_IBM_Character_Set)) {
                      setCcsid(value);
                  }
                  else if (name.equals(SIProperties.JMS_IBM_Encoding)) {
                      setEncoding(value);
                  }
              }
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "setNonNullProperty");
      }
docs: /*
  Set a non-null Object into the appropriate Property map.
  
  Javadoc description supplied by JsJmsMessage interface.
  
  If the property starts with JMS it is put into the SystemProperty map,
  otherwise it is put into the JMSUSerProperty map.
  The only occasion where the JMS API affects a User property of a
  non-JMS type is when a property of the same name is set to a JMS type.
  In that case we have to delete the corresponding property from the other
  map.