code: final void cmdRequestUpdate(final PersistentTransaction transaction) throws SevereMessageStoreException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "cmdRequestUpdate", new Object[] { "Item Link:   " + this, "Stream Link: " + _owningStreamLink, "Transaction: " + transaction });
  
          boolean hasBecomeNotReleasable = false;
          synchronized (this)
          {
              if (ItemLinkState.STATE_AVAILABLE == _itemLinkState)
              {
  
                  ListStatistics stats = getParentStatistics();
                  synchronized (stats)
                  {
                      stats.decrementAvailable();
                      stats.incrementUpdating();
                  }
  
                  _transactionId = transaction.getPersistentTranId();
                  hasBecomeNotReleasable = _declareNotDiscardable(_getItemNoRestore());
                  _itemLinkState = ItemLinkState.STATE_UPDATING_DATA;
              }
              else
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
                      SibTr.event(this, tc, "Invalid Item state: " + _itemLinkState);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      SibTr.exit(this, tc, "cmdRequestUpdate");
                  throw new StateException(_itemLinkState.toString());
              }
          }
          if (hasBecomeNotReleasable)
          {
              _declareNotReleasable();
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "cmdRequestUpdate");
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.ws.sib.store.Membership#requestUpdate(com.ibm.ws.sib.msgstore.Transaction)