/*
  * (non-Javadoc)
  *
  * @see
  * com.basho.riak.client.raw.RawClient#mapReduce(com.basho.riak.client.query
  * .MapReduceSpec)
  */
 public MapReduceResult mapReduce(MapReduceSpec spec)
     throws IOException, MapReduceTimeoutException {
   IRequestMeta meta = new RequestMeta();
   meta.contentType(Constants.CTYPE_JSON);
   try {
     MapReduceResponseSource resp = client.mapReduce(spec.getJSON(), meta);
     return convert(resp);
   } catch (RiakError e) {
     if (JSONErrorParser.isTimeoutException(e.getMessage())) {
       throw new MapReduceTimeoutException();
     } else {
       throw new IOException(e.getMessage());
     }
   }
 }