docs: @Override
      public final void setObjectProperty(String name, Object value) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "setObjectProperty", new Object[] { name, value });
  
          /* If the property is either JMSXUserID or JMSXAppID, we set it into the */
          /* message regardless of whether it is null. We know the value is a */
          /* String as the JMS API layer has vetted it. Moved code under d325186.1 */
          if (SIProperties.JMSXAppID.equals(name)) {
              setJmsxAppId((String) value);
          }
          else if (SIProperties.JMSXUserID.equals(name)) {
              setUserid((String) value);
          }
          /* Ditto for JMS_IBM_ArmCorrelator & JMS_TOG_ARM_Correlator */
          else if (SIProperties.JMS_IBM_ArmCorrelator.equals(name)) {
              setARMCorrelator((String) value);
          }
          else if (SIProperties.JMS_TOG_ARM_Correlator.equals(name)) {
              setARMCorrelator((String) value);
          }
  
          /* else, if the value is not null, set the Property */
          else if (value != null) {
              setNonNullProperty(name, value);
          }
  
          /* Otherwise, remove it */
          else {
  
              /* Maelstrom's transportVersion has its own field - the rest are in the */
              /* JmsPropertyMap */
              if (!name.startsWith(JMS_PREFIX)) {
                  if (name.equals(MfpConstants.PRP_TRANSVER)) {
                      clearTransportVersion();
                  }
                  else {
                      if (mayHaveJmsUserProperties()) {
                          getJmsUserPropertyMap().remove(name);
                      }
                  }
              }
              else {
                  if (name.startsWith(JMS_IBM_MQMD_PREFIX)) {
                      deleteMQMDProperty(name);
                  }
                  else {
                      if (mayHaveMappedJmsSystemProperties()) {
                          getJmsSystemPropertyMap().remove(name); // 234893
                      }
                      // JMS_IBM_Character_Set and JMS_IBM_Encoding need to be cleared in the
                      // message itself too.                                          d395685
                      if (name.equals(SIProperties.JMS_IBM_Character_Set)) {
                          setCcsid(null);
                      }
                      else if (name.equals(SIProperties.JMS_IBM_Encoding)) {
                          setEncoding(null);
                      }
                  }
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "setObjectProperty");
      }