code: @Override
      public LogValue combineBucketsForModification(int pRevisionsToRestore, long pNewBucketKey,
          DataBucket[] pBuckets, boolean pFullDump) {
          // check to have only the newer version and the related fulldump to read on
          checkArgument(pBuckets.length > 0, "At least one Databucket must be provided");
          // create buckets for container..
          final DataBucket[] returnVal =
              {
                  new DataBucket(pBuckets[0].getBucketKey(), pBuckets[0].getLastBucketPointer()),
                  new DataBucket(pNewBucketKey, pBuckets[0].getBucketKey())
              };
  
          // ...iterate through the datas and check if it is stored..
          for (int j = 0; j < returnVal[0].getDatas().length; j++) {
              // ...check if the data was written within the last version, if so...
              if (pBuckets[0].getData(j) != null) {
                  // ...set it in the read and write-version to be rewritten again...
                  returnVal[0].setData(j, pBuckets[0].getData(j));
                  returnVal[1].setData(j, pBuckets[0].getData(j));
              } else if (pBuckets.length > 1) {
                  // otherwise, just store then data from the fulldump to complete read-uucket except...
                  returnVal[0].setData(j, pBuckets[1].getData(j));
                  // ..a fulldump becomes necessary.
                  if (pFullDump) {
                      returnVal[1].setData(j, pBuckets[1].getData(j));
                  }
              }
          }
          // return the container
          return new LogValue(returnVal[0], returnVal[1]);
      }
docs: {@inheritDoc}