anchor.diff:            return getAsString(Uri.parse(md5_file_url), client);
           })
           .then((String body) {
  +          if (body == null) return null;
             md5 = md5_regex.firstMatch(body).group(1);
   
             return getAsString(Uri.parse(cs_md5_file_url), client);
           })
           .then((String body) {
  +          if (body == null) return null;
             cs_md5 = md5_regex.firstMatch(body).group(1);
   
             isRawCsAvailable = cs_md5 != "xml";
  
positive.code:         return getAsString(Uri.parse(md5_file_url), client);
        })
        .then((String body) {
          md5 = md5_regex.firstMatch(body).group(1);
  
          return getAsString(Uri.parse(cs_md5_file_url), client);
        })
        .then((String body) {
          cs_md5 = md5_regex.firstMatch(body).group(1);
          int revision = int.parse(release_revision);
          isRawCsAvailable = cs_md5 != "xml";
  
negative.code:         return getAsString(Uri.parse(md5_file_url), client);
        })
        .then((String body) {
          if (body == null) return null;
          md5 = md5_regex.firstMatch(body).group(1);
  
          return getAsString(Uri.parse(cs_md5_file_url), client);
        })
        .then((String body) {
          if (body == null) return null;
          cs_md5 = md5_regex.firstMatch(body).group(1);
  
          isRawCsAvailable = cs_md5 != "xml";
  