docs: public ObjectManagerByteArrayOutputStream[] getBuffers(ObjectManagerByteArrayOutputStream byteArrayOutputStream)
                      throws ObjectManagerException
      {
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this,
                          cclass,
                          "getBuffers");
  
          ObjectManagerByteArrayOutputStream[] buffers = new ObjectManagerByteArrayOutputStream[1
                                                                                                + (tokensToAdd.size()) * 2
                                                                                                + (tokensToOptimisticReplace.size()) * 2
                                                                                                + (tokensToDelete.size())
                                                                                                + (tokensToNotify.size())];
  
          int bufferIndex = 0; // The next buffer to use.
  
          // Create the buffer to contain the header for this log record.
          byteArrayOutputStream.reset();
          buffers[bufferIndex++] = byteArrayOutputStream;
          java.io.DataOutputStream dataOutputStream = new java.io.DataOutputStream(byteArrayOutputStream);
          try {
              dataOutputStream.writeInt(LogRecord.TYPE_OPTIMISTIC_REPLACE);
              dataOutputStream.writeInt(tokensToAdd.size());
              dataOutputStream.writeInt(tokensToOptimisticReplace.size());
              dataOutputStream.writeInt(tokensToDelete.size());
              dataOutputStream.writeInt(tokensToNotify.size());
              logicalUnitOfWork.writeObject(dataOutputStream);
              dataOutputStream.writeInt(transactionState);
  
          } catch (java.io.IOException exception) {
              // No FFDC Code Needed.
              ObjectManager.ffdc.processException(this, cclass, "getBuffers", exception, "1:228:1.11");
  
              if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
                  trace.exit(this,
                             cclass,
                             "getBuffers"
                             , exception);
              throw new PermanentIOException(this,
                                             exception);
          } // catch.
  
          java.util.Iterator serializedObjectIterator = serializedManagedObjectBytes.iterator();
  
          //  Create the buffers containing the serialized ManagedObjects to add.
          for (int i = 0; i < tokensToAdd.size(); i++) {
              byteArrayOutputStream = new ObjectManagerByteArrayOutputStream((int) Token.maximumSerializedSize() + 4);
              dataOutputStream = new java.io.DataOutputStream(byteArrayOutputStream);
              ((Token) tokensToAdd.get(i)).writeObject(dataOutputStream);
  
              ObjectManagerByteArrayOutputStream managedObjectBytes = (ObjectManagerByteArrayOutputStream) serializedObjectIterator.next();
              try {
                  dataOutputStream.writeInt(managedObjectBytes.getCount());
  
              } catch (java.io.IOException exception) {
                  // No FFDC Code Needed.
                  ObjectManager.ffdc.processException(this, cclass, "getBuffers", exception, "1:253:1.11");
  
                  if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
                      trace.exit(this,
                                 cclass,
                                 "getBuffers",
                                 exception);
                  throw new PermanentIOException(this,
                                                 exception);
              } // catch.
              buffers[bufferIndex++] = byteArrayOutputStream;
  
              // Now add a buffer containing the serialzed ManagedObject itself.
              buffers[bufferIndex++] = managedObjectBytes;
          } // for tokensToOptimisticAdd.size().
  
          // Create the buffers containing the serialized ManagedObjects to optimistic replace.
          for (int i = 0; i < tokensToOptimisticReplace.size(); i++) {
              byteArrayOutputStream = new ObjectManagerByteArrayOutputStream((int) Token.maximumSerializedSize() + 4);
              dataOutputStream = new java.io.DataOutputStream(byteArrayOutputStream);
  
              ((Token) tokensToOptimisticReplace.get(i)).writeObject(dataOutputStream);
  
              ObjectManagerByteArrayOutputStream managedObjectBytes = (ObjectManagerByteArrayOutputStream) serializedObjectIterator.next();
              try {
                  dataOutputStream.writeInt(managedObjectBytes.getCount());
  
              } catch (java.io.IOException exception) {
                  // No FFDC Code Needed.
                  ObjectManager.ffdc.processException(this, cclass, "getBuffers", exception, "1:282:1.11");
  
                  if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
                      trace.exit(this,
                                 cclass,
                                 "getBuffers",
                                 exception);
                  throw new PermanentIOException(this,
                                                 exception);
              } // catch.
              buffers[bufferIndex++] = byteArrayOutputStream;
  
              // Now add a buffer containing the serialzed ManagedObject itself.
              buffers[bufferIndex++] = managedObjectBytes;
          } // for tokensToOptimisticReplace.size().
  
          // Create the buffers containing the Tokens to delete.
          for (int i = 0; i < tokensToDelete.size(); i++) {
              byteArrayOutputStream = new ObjectManagerByteArrayOutputStream((int) Token.maximumSerializedSize());
              dataOutputStream = new java.io.DataOutputStream(byteArrayOutputStream);
              ((Token) tokensToDelete.get(i)).writeObject(dataOutputStream);
              buffers[bufferIndex++] = byteArrayOutputStream;
          } // for tokensToDelete.size().
  
          // Create the buffers containing the Tokens to notify.
          for (int i = 0; i < tokensToNotify.size(); i++) {
              byteArrayOutputStream = new ObjectManagerByteArrayOutputStream((int) Token.maximumSerializedSize());
              dataOutputStream = new java.io.DataOutputStream(byteArrayOutputStream);
              ((Token) tokensToNotify.get(i)).writeObject(dataOutputStream);
              buffers[bufferIndex++] = byteArrayOutputStream;
          } // for tokensToNotify.size().
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this,
                         cclass,
                         "getBuffers",
                         "return=" + buffers);
          return buffers;
      }