code: public List<Versioned<V>> getWithCustomTimeout(CompositeVoldemortRequest<K, V> requestWrapper) {
          validateTimeout(requestWrapper.getRoutingTimeoutInMs());
          for(int attempts = 0; attempts < this.metadataRefreshAttempts; attempts++) {
              try {
                  long startTimeInMs = System.currentTimeMillis();
                  String keyHexString = "";
                  if(logger.isDebugEnabled()) {
                      ByteArray key = (ByteArray) requestWrapper.getKey();
                      keyHexString = RestUtils.getKeyHexString(key);
                      debugLogStart("GET",
                                    requestWrapper.getRequestOriginTimeInMs(),
                                    startTimeInMs,
                                    keyHexString);
                  }
                  List<Versioned<V>> items = store.get(requestWrapper);
                  if(logger.isDebugEnabled()) {
                      int vcEntrySize = 0;
                      for(Versioned<V> vc: items) {
                          vcEntrySize += ((VectorClock) vc.getVersion()).getVersionMap().size();
                      }
                      debugLogEnd("GET",
                                  requestWrapper.getRequestOriginTimeInMs(),
                                  startTimeInMs,
                                  System.currentTimeMillis(),
                                  keyHexString,
                                  vcEntrySize);
                  }
                  return items;
              } catch(InvalidMetadataException e) {
                  logger.info("Received invalid metadata exception during get [  " + e.getMessage()
                              + " ] on store '" + storeName + "'. Rebootstrapping");
                  bootStrap();
              }
          }
          throw new VoldemortException(this.metadataRefreshAttempts
                                       + " metadata refresh attempts failed.");
      }
docs: Performs a get operation with the specified composite request object
  
  @param requestWrapper A composite request object containing the key (and
  / or default value) and timeout.
  @return The Versioned value corresponding to the key