code: private void checkProducerPromise(String jmsMethod, String ffdcProbeID) throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "checkProducerPromise", new Object[] { jmsMethod, ffdcProbeID });
  
          // Only proceed if the producer hasn't promised not to modify the payload
          // after setting it.
          if (producerWontModifyPayloadAfterSet) {
              throw (JMSException) JmsErrorUtils.newThrowable(
                                                              IllegalStateException.class, // JMS illegal state exception
                                                              "PROMISE_BROKEN_EXCEPTION_CWSIA0510", // promise broken
                                                              new Object[] { jmsMethod }, // insert = jms method name
                                                              null, // no cause, original exception
                                                              ffdcProbeID, // Probe ID
                                                              this, // caller (?)
                                                              tc); // Trace component
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "checkProducerPromise");
      }
docs: Checks to see if the producer has promised not to modify the payload after it's been set.
  If they have, then throw a JMS exception based on the parameters
  
  @throws JMSException