docs: @Override
      public void setProducerPreferLocal(String preferLocal) throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "setProducerPreferLocal", preferLocal);
  
          // Make sure null and empty are treated equally.
          if ((preferLocal == null) || ("".equals(preferLocal.trim())))
              preferLocal = null;
  
          if ((preferLocal == null) ||
              (ApiJmsConstants.PRODUCER_PREFER_LOCAL_OFF.equals(preferLocal) ||
              (ApiJmsConstants.PRODUCER_PREFER_LOCAL_ON.equals(preferLocal)))) {
  
              updateProperty(PRODUCER_PREFER_LOCAL, preferLocal);
          }
          else {
              // bad value, throw exception
              String key = "INVALID_VALUE_CWSIA0281";
              Object[] inserts = new Object[] { PRODUCER_PREFER_LOCAL, preferLocal };
              throw (JMSException) JmsErrorUtils.newThrowable(JMSException.class, key, inserts, tc);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "setProducerPreferLocal");
      }