docs: @Override
      public void writeFloat(float value) throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "writeFloat", value);
  
          try {
              // Check if the producer has promised not to modify the payload after it's been set
              checkProducerPromise("writeFloat(float)", "JmsBytesMessageImpl.writeFloat#2");
  
              // Check that we are in write mode
              checkBodyWriteable("writeFloat");
  
              // Convert the float to an int as described above
              writeStream.writeInt(Float.floatToIntBits(value));
  
              // Record the position and value of the float in the float vectors, so that it can be encoded in a different
              // representation if desired
              if (float_values == null)
                  float_values = new Vector();
              float_values.addElement(new Float(value)); // value
              if (float_offsets == null)
                  float_offsets = new Vector();
              float_offsets.addElement(Integer.valueOf(writeStream.size() - 4)); // offset
  
              // Invalidate the cached toString object.
              cachedBytesToString = null;
  
              // Ensure that the new data gets exported when the time comes.
              bodySetInJsMsg = false;
          }
  
          // We don't expect the writeInt to fail, but we need to catch the exception anyway
          catch (IOException ex) {
              // No FFDC code needed
              // d238447 review. Generate FFDC for this case.
              throw (JMSException) JmsErrorUtils.newThrowable(
                                                              ResourceAllocationException.class,
                                                              "WRITE_PROBLEM_CWSIA0186",
                                                              null,
                                                              ex,
                                                              "JmsBytesMessageImpl.writeFloat#1",
                                                              this,
                                                              tc);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "writeFloat");
      }