docs: protected ObjectManagerByteArrayOutputStream[] getBuffers(ObjectManagerByteArrayOutputStream byteArrayOutputStream)
                      throws ObjectManagerException {
          final String methodName = "getBuffers";
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this,
                          cclass,
                          methodName,
                          new Object[] { byteArrayOutputStream });
  
          ObjectManagerByteArrayOutputStream[] buffers = new ObjectManagerByteArrayOutputStream[1 + tokensToReplace.size()];
  
          // Create the buffer to contain the header for this log record.
          byteArrayOutputStream.reset();
          buffers[0] = byteArrayOutputStream;
          java.io.DataOutputStream dataOutputStream = new java.io.DataOutputStream(byteArrayOutputStream);
          try {
              dataOutputStream.writeInt(LogRecord.TYPE_CHECKPOINT_TRANSACTION);
              logicalUnitOfWork.writeObject(dataOutputStream);
              dataOutputStream.writeInt(transactionState);
              dataOutputStream.writeInt(tokensToAdd.size());
              dataOutputStream.writeInt(tokensToReplace.size());
              dataOutputStream.writeInt(tokensToOptimisticReplace.size());
              dataOutputStream.writeInt(tokensToDelete.size());
              dataOutputStream.writeInt(tokensToNotify.size());
  
          } catch (java.io.IOException exception) {
              // No FFDC Code Needed.
              ObjectManager.ffdc.processException(this, cclass, methodName, exception, "1:240:1.8");
  
              if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
                  trace.exit(this,
                             cclass,
                             methodName, new Object[] { exception });
              throw new PermanentIOException(this,
                                             exception);
          } // catch.
  
          // Write the Add Tokens.
          for (java.util.Iterator tokenIterator = tokensToAdd.iterator(); tokenIterator.hasNext();) {
              Token token = (Token) tokenIterator.next();
              token.writeObject(dataOutputStream);
          } // for ... tokensToAdd.
  
          // Write the Replace Tokens.
          java.util.Iterator serializedBytesIterator = serializedBytesToReplace.iterator();
          int ibuffer = 1;
          for (java.util.Iterator tokenIterator = tokensToReplace.iterator(); tokenIterator.hasNext();) {
              Token token = (Token) tokenIterator.next();
              token.writeObject(dataOutputStream);
              ObjectManagerByteArrayOutputStream managedObjectBytes = (ObjectManagerByteArrayOutputStream) serializedBytesIterator.next();
              try {
                  dataOutputStream.writeInt(managedObjectBytes.getCount());
              } catch (java.io.IOException exception) {
                  // No FFDC Code Needed.
                  ObjectManager.ffdc.processException(this, cclass, methodName, exception, "1:267:1.8");
  
                  if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
                      trace.exit(this,
                                 cclass,
                                 methodName,
                                 exception);
                  throw new PermanentIOException(this,
                                                 exception);
              } // catch.
                // Add the the serialized image of the ManagedObject after the header containing all of the
                // tokens.
              buffers[ibuffer++] = managedObjectBytes;
          } // for ... tokensToReplace.
  
          // Write the Optimistic Replace Tokens.
          for (java.util.Iterator tokenIterator = tokensToOptimisticReplace.iterator(); tokenIterator.hasNext();) {
              Token token = (Token) tokenIterator.next();
              token.writeObject(dataOutputStream);
          } // for ... tokensToOptimisticReplace.
  
          // Write the Delete Tokens.
          for (java.util.Iterator tokenIterator = tokensToDelete.iterator(); tokenIterator.hasNext();) {
              Token token = (Token) tokenIterator.next();
              token.writeObject(dataOutputStream);
          } // for ... tokensToDelete.
  
          // Write the Notify Tokens.
          for (java.util.Iterator tokenIterator = tokensToNotify.iterator(); tokenIterator.hasNext();) {
              Token token = (Token) tokenIterator.next();
              token.writeObject(dataOutputStream);
          } // for ... tokensToNotify.
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this,
                         cclass,
                         methodName,
                         new Object[] { buffers });
          return buffers;
      }