code: public long setData(final IData pData) throws TTException {
  
          checkState(!mDelegate.isClosed(), "Transaction already closed");
          // Allocate data key and increment data count.
          final long dataKey = pData.getDataKey();
          final long seqBucketKey = dataKey >> IConstants.INDIRECT_BUCKET_COUNT[3];
          final int dataBucketOffset = dataBucketOffset(dataKey);
          final LogValue container = prepareDataBucket(dataKey);
          final DataBucket modified = ((DataBucket)container.getModified());
          final DataBucket complete = ((DataBucket)container.getComplete());
          modified.setData(dataBucketOffset, pData);
          complete.setData(dataBucketOffset, pData);
          mLog.put(new LogKey(false, IConstants.INDIRECT_BUCKET_COUNT.length, seqBucketKey), container);
          return dataKey;
      }
docs: {@inheritDoc}