code: private synchronized void extendObjectTable() throws ConversationStateFullException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "extendObjectTable");
  
          int newTableSize = (((maxIndex + 1) * OBJECT_TABLE_EXTEND_FACTOR) - OBJECT_TABLE_ORIGIN);
  
          // new table size
          if (newTableSize > maxTableSize)
          {
              if ((maxIndex + 1) < maxTableSize)
              {
                  newTableSize = maxTableSize;
              }
              else
              {
                  ConversationStateFullException e = new ConversationStateFullException();
  
                  // Lets FFDC this so we can capture the information about what has filled up the store
                  FFDCFilter.processException(e, CLASS_NAME + ".extendObjectTable",
                                              CommsConstants.CONVERSATIONSTATE_EXTENDOBJECTTABLE_01,
                                              new Object[] { getLastItemsInStore(), this });
  
                  throw e;
              }
          }
  
          Object[] newObjectTable = new Object[newTableSize]; // Create new, extended table
          // Copy old table to new
          System.arraycopy(objectTable, 0, newObjectTable, 0, (maxIndex + 1));
  
          freeSlot = (maxIndex + 1); // set next free slot
          maxIndex = (newTableSize - 1); // Set new max index
          objectTable = newObjectTable; // Point to new table
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          {
              SibTr.debug(tc, "Next free slot = ", Integer.valueOf(freeSlot));
              SibTr.debug(tc, "Max Index = ", Integer.valueOf(maxIndex));
              SibTr.debug(tc, "High Water Mark = ", Integer.valueOf(highWatermark));
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "extendObjectTable");
      }
docs: extendObjectTable - extends the object store if it is found to be full. The table
  can be extended until a maximum size. The maximum size can be supplied, or a
  default size.
  
  @throws ConversationStateFullException if there is no more space.