nus-yam/ex-repair huggingface dataset:
Program: 6892
Project: 6892
Buggy source:
@Override public void configurePipeline(PipelineConfigurer pipelineConfigurer){
  Preconditions.checkArgument(!(dbSinkConfig.user == null && dbSinkConfig.password != null),"String_Node_Str" + "String_Node_Str");
  Preconditions.checkArgument(!(dbSinkConfig.user != null && dbSinkConfig.password == null),"String_Node_Str" + "String_Node_Str");
  Class<Object> jdbcDriverClass=pipelineConfigurer.usePluginClass(dbSinkConfig.jdbcPluginType,dbSinkConfig.jdbcPluginName,getJDBCPluginId(),PluginProperties.builder().build());
  Preconditions.checkArgument(jdbcDriverClass != null,"String_Node_Str");
}

Fixed version (ground truth):
@Override public void configurePipeline(PipelineConfigurer pipelineConfigurer){
  Preconditions.checkArgument(!(dbSinkConfig.user == null && dbSinkConfig.password != null),"String_Node_Str" + "String_Node_Str");
  Preconditions.checkArgument(!(dbSinkConfig.user != null && dbSinkConfig.password == null),"String_Node_Str" + "String_Node_Str");
  Class<? extends Driver> jdbcDriverClass=pipelineConfigurer.usePluginClass(dbSinkConfig.jdbcPluginType,dbSinkConfig.jdbcPluginName,getJDBCPluginId(),PluginProperties.builder().build());
  Preconditions.checkArgument(jdbcDriverClass != null,"String_Node_Str");
}
Program: 6893
Project: 6893
Buggy source:
@Override public void prepareRun(BatchSourceContext context){
  LOG.debug("String_Node_Str" + "String_Node_Str",dbSourceConfig.tableName,dbSourceConfig.jdbcPluginType,dbSourceConfig.jdbcPluginName,dbSourceConfig.connectionString,dbSourceConfig.importQuery,dbSourceConfig.countQuery);
  Job job=context.getHadoopJob();
  Configuration conf=job.getConfiguration();
  String jdbcPluginId=String.format("String_Node_Str","String_Node_Str",dbSourceConfig.jdbcPluginType,dbSourceConfig.jdbcPluginName);
  Class<?> driverClass=context.loadPluginClass(jdbcPluginId);
  if (dbSourceConfig.user == null && dbSourceConfig.password == null) {
    DBConfiguration.configureDB(conf,driverClass.getName(),dbSourceConfig.connectionString);
  }
 else {
    DBConfiguration.configureDB(conf,driverClass.getName(),dbSourceConfig.connectionString,dbSourceConfig.user,dbSourceConfig.password);
  }
  ETLDBInputFormat.setInput(job,DBRecord.class,dbSourceConfig.importQuery,dbSourceConfig.countQuery);
  job.setInputFormatClass(ETLDBInputFormat.class);
}

Fixed version (ground truth):
@Override public void prepareRun(BatchSourceContext context){
  LOG.debug("String_Node_Str" + "String_Node_Str",dbSourceConfig.tableName,dbSourceConfig.jdbcPluginType,dbSourceConfig.jdbcPluginName,dbSourceConfig.connectionString,dbSourceConfig.importQuery,dbSourceConfig.countQuery);
  Job job=context.getHadoopJob();
  Configuration hConf=job.getConfiguration();
  Class<? extends Driver> driverClass=context.loadPluginClass(getJDBCPluginId());
  if (dbSourceConfig.user == null && dbSourceConfig.password == null) {
    DBConfiguration.configureDB(hConf,driverClass.getName(),dbSourceConfig.connectionString);
  }
 else {
    DBConfiguration.configureDB(hConf,driverClass.getName(),dbSourceConfig.connectionString,dbSourceConfig.user,dbSourceConfig.password);
  }
  ETLDBInputFormat.setInput(job,DBRecord.class,dbSourceConfig.importQuery,dbSourceConfig.countQuery);
  job.setInputFormatClass(ETLDBInputFormat.class);
}
Program: 6894
Project: 6894
Buggy source:
@Override public void configurePipeline(PipelineConfigurer pipelineConfigurer){
  Preconditions.checkArgument(!(dbSourceConfig.user == null && dbSourceConfig.password != null),"String_Node_Str" + "String_Node_Str");
  Preconditions.checkArgument(!(dbSourceConfig.user != null && dbSourceConfig.password == null),"String_Node_Str" + "String_Node_Str");
  String jdbcPluginId=String.format("String_Node_Str","String_Node_Str",dbSourceConfig.jdbcPluginType,dbSourceConfig.jdbcPluginName);
  Class<Object> jdbcDriverClass=pipelineConfigurer.usePluginClass(dbSourceConfig.jdbcPluginType,dbSourceConfig.jdbcPluginName,jdbcPluginId,PluginProperties.builder().build());
  Preconditions.checkArgument(jdbcDriverClass != null,"String_Node_Str");
}

Fixed version (ground truth):
@Override public void configurePipeline(PipelineConfigurer pipelineConfigurer){
  Preconditions.checkArgument(!(dbSourceConfig.user == null && dbSourceConfig.password != null),"String_Node_Str" + "String_Node_Str");
  Preconditions.checkArgument(!(dbSourceConfig.user != null && dbSourceConfig.password == null),"String_Node_Str" + "String_Node_Str");
  String jdbcPluginId=String.format("String_Node_Str","String_Node_Str",dbSourceConfig.jdbcPluginType,dbSourceConfig.jdbcPluginName);
  Class<? extends Driver> jdbcDriverClass=pipelineConfigurer.usePluginClass(dbSourceConfig.jdbcPluginType,dbSourceConfig.jdbcPluginName,jdbcPluginId,PluginProperties.builder().build());
  Preconditions.checkArgument(jdbcDriverClass != null,"String_Node_Str");
}
Program: 6895
Project: 6895
Buggy source:
@Nullable private Object transformValue(int sqlColumnType,Object original) throws SQLException {
  if (original != null) {
switch (sqlColumnType) {
case Types.NUMERIC:
case Types.DECIMAL:
      return ((BigDecimal)original).doubleValue();
case Types.DATE:
    return ((Date)original).getTime();
case Types.TIME:
  return ((Time)original).getTime();
case Types.TIMESTAMP:
return ((Timestamp)original).getTime();
case Types.BLOB:
Object toReturn;
Blob blob=(Blob)original;
try {
toReturn=blob.getBytes(1,(int)blob.length());
}
  finally {
blob.free();
}
return toReturn;
case Types.CLOB:
String s;
StringBuffer sbf=new StringBuffer();
Clob clob=(Clob)original;
try {
BufferedReader br=new BufferedReader(clob.getCharacterStream(1,(int)clob.length()));
try {
while ((s=br.readLine()) != null) {
sbf.append(s);
sbf.append(System.getProperty("String_Node_Str"));
}
}
  finally {
br.close();
}
}
 catch (IOException e) {
throw new SQLException(e);
}
 finally {
clob.free();
}
return sbf.toString();
}
}
return original;
}

Fixed version (ground truth):
@Nullable private Object transformValue(int sqlColumnType,Object original) throws SQLException {
  if (original != null) {
switch (sqlColumnType) {
case Types.NUMERIC:
case Types.DECIMAL:
      return ((BigDecimal)original).doubleValue();
case Types.DATE:
    return ((Date)original).getTime();
case Types.TIME:
  return ((Time)original).getTime();
case Types.TIMESTAMP:
return ((Timestamp)original).getTime();
case Types.BLOB:
Object toReturn;
Blob blob=(Blob)original;
try {
toReturn=blob.getBytes(1,(int)blob.length());
}
  finally {
blob.free();
}
return toReturn;
case Types.CLOB:
String s;
StringBuilder sbf=new StringBuilder();
Clob clob=(Clob)original;
try {
try (BufferedReader br=new BufferedReader(clob.getCharacterStream(1,(int)clob.length()))){
while ((s=br.readLine()) != null) {
sbf.append(s);
sbf.append(System.getProperty("String_Node_Str"));
}
}
 }
 catch (IOException e) {
throw new SQLException(e);
}
 finally {
clob.free();
}
return sbf.toString();
}
}
return original;
}
Program: 6896
Project: 6896
Buggy source:
private DatasetInstanceConfiguration getInstanceConfiguration(HttpRequest request){
  Reader reader=new InputStreamReader(new ChannelBufferInputStream(request.getContent()),Charsets.UTF_8);
  DatasetInstanceConfiguration creationProperties=GSON.fromJson(reader,DatasetInstanceConfiguration.class);
  fixProperties(creationProperties.getProperties());
  return creationProperties;
}

Fixed version (ground truth):
private DatasetInstanceConfiguration getInstanceConfiguration(HttpRequest request){
  Reader reader=new InputStreamReader(new ChannelBufferInputStream(request.getContent()),Charsets.UTF_8);
  DatasetInstanceConfiguration creationProperties=GSON.fromJson(reader,DatasetInstanceConfiguration.class);
  if (creationProperties.getProperties() == null) {
    creationProperties=new DatasetInstanceConfiguration(creationProperties.getTypeName());
  }
  fixProperties(creationProperties.getProperties());
  return creationProperties;
}
Program: 6897
Project: 6897
Buggy source:
private int createInstance(String instanceName,String typeName,DatasetProperties props) throws IOException {
  DatasetInstanceConfiguration creationProperties=new DatasetInstanceConfiguration(typeName,props.getProperties());
  HttpRequest request=HttpRequest.put(getUrl("String_Node_Str" + instanceName)).withBody(new Gson().toJson(creationProperties)).build();
  return HttpRequests.execute(request).getResponseCode();
}

Fixed version (ground truth):
private int createInstance(String instanceName,String typeName) throws IOException {
  DatasetInstanceConfiguration creationProperties=new DatasetInstanceConfiguration(typeName,null);
  HttpRequest request=HttpRequest.put(getUrl("String_Node_Str" + instanceName)).withBody(new Gson().toJson(creationProperties)).build();
  return HttpRequests.execute(request).getResponseCode();
}
Program: 6900
Project: 6900
Buggy source:
@Override public void setValue(String key,String value){
  Preconditions.checkNotNull(nodeName,"String_Node_Str");
  WorkflowTokenValue tokenValue=tokenValueMap.get(key);
  if (tokenValue == null) {
    tokenValue=new WorkflowTokenValue();
  }
  tokenValue.putValue(nodeName,value);
  tokenValueMap.put(key,tokenValue);
}

Fixed version (ground truth):
@Override public void setValue(String key,String value){
  Preconditions.checkNotNull(nodeName,"String_Node_Str");
  WorkflowTokenValue tokenValue=tokenValueMap.get(key);
  if (tokenValue == null) {
    tokenValue=new WorkflowTokenValue();
    tokenValueMap.put(key,tokenValue);
  }
  tokenValue.putValue(nodeName,value);
}
Program: 6901
Project: 6901
Buggy source:
public StartDebugProgramCommand(ElementType elementType,ProgramClient programClient,CLIConfig cliConfig){
  super(cliConfig);
  this.elementType=elementType;
  this.programClient=programClient;
}

Fixed version (ground truth):
public StartDebugProgramCommand(ElementType elementType,ProgramClient programClient,CLIConfig cliConfig){
  super(elementType,programClient,cliConfig);
  this.isDebug=true;
}
Program: 6902
Project: 6902
Buggy source:
@Override public void perform(Arguments arguments,PrintStream output) throws Exception {
  String[] programIdParts=arguments.get(elementType.getArgumentName().toString()).split("String_Node_Str");
  if (programIdParts.length < 2) {
    throw new CommandInputError(this);
  }
  String appId=programIdParts[0];
  String programId=programIdParts[1];
  String runtimeArgsString=arguments.get(ArgumentName.RUNTIME_ARGS.toString(),"String_Node_Str");
  if (runtimeArgsString == null || runtimeArgsString.isEmpty()) {
    programClient.start(appId,elementType.getProgramType(),programId,false);
    runtimeArgsString=GSON.toJson(programClient.getRuntimeArgs(appId,elementType.getProgramType(),programId));
    output.printf("String_Node_Str",elementType.getTitleName(),programId,appId,runtimeArgsString);
  }
 else {
    Map<String,String> runtimeArgs=ArgumentParser.parseMap(runtimeArgsString);
    programClient.start(appId,elementType.getProgramType(),programId,false,runtimeArgs);
    output.printf("String_Node_Str",elementType.getTitleName(),programId,appId,runtimeArgsString);
  }
}

Fixed version (ground truth):
@Override public void perform(Arguments arguments,PrintStream output) throws Exception {
  String[] programIdParts=arguments.get(elementType.getArgumentName().toString()).split("String_Node_Str");
  if (programIdParts.length < 2) {
    throw new CommandInputError(this);
  }
  String appId=programIdParts[0];
  String programId=programIdParts[1];
  String runtimeArgsString=arguments.get(ArgumentName.RUNTIME_ARGS.toString(),"String_Node_Str");
  if (runtimeArgsString == null || runtimeArgsString.isEmpty()) {
    programClient.start(appId,elementType.getProgramType(),programId,isDebug);
    runtimeArgsString=GSON.toJson(programClient.getRuntimeArgs(appId,elementType.getProgramType(),programId));
    output.printf("String_Node_Str",elementType.getTitleName(),programId,appId,runtimeArgsString);
  }
 else {
    Map<String,String> runtimeArgs=ArgumentParser.parseMap(runtimeArgsString);
    programClient.start(appId,elementType.getProgramType(),programId,isDebug,runtimeArgs);
    output.printf("String_Node_Str",elementType.getTitleName(),programId,appId,runtimeArgsString);
  }
}
Program: 6903
Project: 6903
Buggy source:
private static List<Command> generateCommands(ProgramClient programClient,CLIConfig cliConfig){
  List<Command> commands=Lists.newArrayList();
  for (  ElementType elementType : ElementType.values()) {
    if (elementType.canStart()) {
      commands.add(new StartProgramCommand(elementType,programClient,cliConfig));
    }
  }
  return commands;
}

Fixed version (ground truth):
private static List<Command> generateCommands(ProgramClient programClient,CLIConfig cliConfig){
  List<Command> commands=Lists.newArrayList();
  for (  ElementType elementType : ElementType.values()) {
    if (elementType.canStart()) {
      commands.add(new StartProgramCommand(elementType,programClient,cliConfig));
      commands.add(new StartDebugProgramCommand(elementType,programClient,cliConfig));
    }
  }
  return commands;
}
Program: 6904
Project: 6904
Buggy source:
/** 
 * Sets the runtime args of a program.
 * @param appId ID of the application tat the program belongs to
 * @param programType type of the program
 * @param programId ID of the program
 * @param runtimeArgs args of the program
 * @throws IOException if a network error occurred
 * @throws ProgramNotFoundException if the application or program could not be found
 * @throws UnauthorizedException if the request is not authorized successfully in the gateway server
 */
public void setRuntimeArgs(String appId,ProgramType programType,String programId,Map<String,String> runtimeArgs) throws IOException, UnauthorizedException, ProgramNotFoundException {
  Id.Application app=Id.Application.from(config.getNamespace(),appId);
  Id.Program program=Id.Program.from(app,programType,programId);
  String path=String.format("String_Node_Str",appId,programType.getCategoryName(),programId);
  URL url=config.resolveNamespacedURLV3(path);
  HttpRequest request=HttpRequest.put(url).withBody(GSON.toJson(runtimeArgs)).build();
  HttpResponse response=restClient.execute(request,config.getAccessToken(),HttpURLConnection.HTTP_NOT_FOUND);
  if (response.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
    throw new ProgramNotFoundException(program);
  }
}

Fixed version (ground truth):
/** 
 * Sets the runtime args of a program.
 * @param appId ID of the application that the program belongs to
 * @param programType type of the program
 * @param programId ID of the program
 * @param runtimeArgs args of the program
 * @throws IOException if a network error occurred
 * @throws ProgramNotFoundException if the application or program could not be found
 * @throws UnauthorizedException if the request is not authorized successfully in the gateway server
 */
public void setRuntimeArgs(String appId,ProgramType programType,String programId,Map<String,String> runtimeArgs) throws IOException, UnauthorizedException, ProgramNotFoundException {
  Id.Application app=Id.Application.from(config.getNamespace(),appId);
  Id.Program program=Id.Program.from(app,programType,programId);
  String path=String.format("String_Node_Str",appId,programType.getCategoryName(),programId);
  URL url=config.resolveNamespacedURLV3(path);
  HttpRequest request=HttpRequest.put(url).withBody(GSON.toJson(runtimeArgs)).build();
  HttpResponse response=restClient.execute(request,config.getAccessToken(),HttpURLConnection.HTTP_NOT_FOUND);
  if (response.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
    throw new ProgramNotFoundException(program);
  }
}
Program: 6905
Project: 6905
Buggy source:
/** 
 * Gets the runtime args of a program.
 * @param appId ID of the application tat the program belongs to
 * @param programType type of the program
 * @param programId ID of the program
 * @return runtime args of the program
 * @throws IOException if a network error occurred
 * @throws ProgramNotFoundException if the application or program could not be found
 * @throws UnauthorizedException if the request is not authorized successfully in the gateway server
 */
public Map<String,String> getRuntimeArgs(String appId,ProgramType programType,String programId) throws IOException, UnauthorizedException, ProgramNotFoundException {
  Id.Application app=Id.Application.from(config.getNamespace(),appId);
  Id.Program program=Id.Program.from(app,programType,programId);
  String path=String.format("String_Node_Str",appId,programType.getCategoryName(),programId);
  URL url=config.resolveNamespacedURLV3(path);
  HttpResponse response=restClient.execute(HttpMethod.GET,url,config.getAccessToken(),HttpURLConnection.HTTP_NOT_FOUND);
  if (response.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
    throw new ProgramNotFoundException(program);
  }
  return ObjectResponse.fromJsonBody(response,new TypeToken<Map<String,String>>(){
  }
).getResponseObject();
}

Fixed version (ground truth):
/** 
 * Gets the runtime args of a program.
 * @param appId ID of the application that the program belongs to
 * @param programType type of the program
 * @param programId ID of the program
 * @return runtime args of the program
 * @throws IOException if a network error occurred
 * @throws ProgramNotFoundException if the application or program could not be found
 * @throws UnauthorizedException if the request is not authorized successfully in the gateway server
 */
public Map<String,String> getRuntimeArgs(String appId,ProgramType programType,String programId) throws IOException, UnauthorizedException, ProgramNotFoundException {
  Id.Application app=Id.Application.from(config.getNamespace(),appId);
  Id.Program program=Id.Program.from(app,programType,programId);
  String path=String.format("String_Node_Str",appId,programType.getCategoryName(),programId);
  URL url=config.resolveNamespacedURLV3(path);
  HttpResponse response=restClient.execute(HttpMethod.GET,url,config.getAccessToken(),HttpURLConnection.HTTP_NOT_FOUND);
  if (response.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
    throw new ProgramNotFoundException(program);
  }
  return ObjectResponse.fromJsonBody(response,new TypeToken<Map<String,String>>(){
  }
).getResponseObject();
}
Program: 6906
Project: 6906
Buggy source:
public StartDebugProgramCommand(ElementType elementType,ProgramClient programClient,CLIConfig cliConfig){
  super(cliConfig);
  this.elementType=elementType;
  this.programClient=programClient;
}

Fixed version (ground truth):
public StartDebugProgramCommand(ElementType elementType,ProgramClient programClient,CLIConfig cliConfig){
  super(elementType,programClient,cliConfig);
  this.isDebug=true;
}
Program: 6907
Project: 6907
Buggy source:
@Override public void perform(Arguments arguments,PrintStream output) throws Exception {
  String[] programIdParts=arguments.get(elementType.getArgumentName().toString()).split("String_Node_Str");
  if (programIdParts.length < 2) {
    throw new CommandInputError(this);
  }
  String appId=programIdParts[0];
  String programId=programIdParts[1];
  String runtimeArgsString=arguments.get(ArgumentName.RUNTIME_ARGS.toString(),"String_Node_Str");
  if (runtimeArgsString == null || runtimeArgsString.isEmpty()) {
    programClient.start(appId,elementType.getProgramType(),programId,false);
    runtimeArgsString=GSON.toJson(programClient.getRuntimeArgs(appId,elementType.getProgramType(),programId));
    output.printf("String_Node_Str",elementType.getTitleName(),programId,appId,runtimeArgsString);
  }
 else {
    Map<String,String> runtimeArgs=ArgumentParser.parseMap(runtimeArgsString);
    programClient.start(appId,elementType.getProgramType(),programId,false,runtimeArgs);
    output.printf("String_Node_Str",elementType.getTitleName(),programId,appId,runtimeArgsString);
  }
}

Fixed version (ground truth):
@Override public void perform(Arguments arguments,PrintStream output) throws Exception {
  String[] programIdParts=arguments.get(elementType.getArgumentName().toString()).split("String_Node_Str");
  if (programIdParts.length < 2) {
    throw new CommandInputError(this);
  }
  String appId=programIdParts[0];
  String programId=programIdParts[1];
  String runtimeArgsString=arguments.get(ArgumentName.RUNTIME_ARGS.toString(),"String_Node_Str");
  if (runtimeArgsString == null || runtimeArgsString.isEmpty()) {
    programClient.start(appId,elementType.getProgramType(),programId,isDebug);
    runtimeArgsString=GSON.toJson(programClient.getRuntimeArgs(appId,elementType.getProgramType(),programId));
    output.printf("String_Node_Str",elementType.getTitleName(),programId,appId,runtimeArgsString);
  }
 else {
    Map<String,String> runtimeArgs=ArgumentParser.parseMap(runtimeArgsString);
    programClient.start(appId,elementType.getProgramType(),programId,isDebug,runtimeArgs);
    output.printf("String_Node_Str",elementType.getTitleName(),programId,appId,runtimeArgsString);
  }
}
Program: 6908
Project: 6908
Buggy source:
private static List<Command> generateCommands(ProgramClient programClient,CLIConfig cliConfig){
  List<Command> commands=Lists.newArrayList();
  for (  ElementType elementType : ElementType.values()) {
    if (elementType.canStart()) {
      commands.add(new StartProgramCommand(elementType,programClient,cliConfig));
    }
  }
  return commands;
}

Fixed version (ground truth):
private static List<Command> generateCommands(ProgramClient programClient,CLIConfig cliConfig){
  List<Command> commands=Lists.newArrayList();
  for (  ElementType elementType : ElementType.values()) {
    if (elementType.canStart()) {
      commands.add(new StartProgramCommand(elementType,programClient,cliConfig));
      commands.add(new StartDebugProgramCommand(elementType,programClient,cliConfig));
    }
  }
  return commands;
}
Program: 6909
Project: 6909
Buggy source:
/** 
 * Sets the runtime args of a program.
 * @param appId ID of the application tat the program belongs to
 * @param programType type of the program
 * @param programId ID of the program
 * @param runtimeArgs args of the program
 * @throws IOException if a network error occurred
 * @throws ProgramNotFoundException if the application or program could not be found
 * @throws UnauthorizedException if the request is not authorized successfully in the gateway server
 */
public void setRuntimeArgs(String appId,ProgramType programType,String programId,Map<String,String> runtimeArgs) throws IOException, UnauthorizedException, ProgramNotFoundException {
  Id.Application app=Id.Application.from(config.getNamespace(),appId);
  Id.Program program=Id.Program.from(app,programType,programId);
  String path=String.format("String_Node_Str",appId,programType.getCategoryName(),programId);
  URL url=config.resolveNamespacedURLV3(path);
  HttpRequest request=HttpRequest.put(url).withBody(GSON.toJson(runtimeArgs)).build();
  HttpResponse response=restClient.execute(request,config.getAccessToken(),HttpURLConnection.HTTP_NOT_FOUND);
  if (response.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
    throw new ProgramNotFoundException(program);
  }
}

Fixed version (ground truth):
/** 
 * Sets the runtime args of a program.
 * @param appId ID of the application that the program belongs to
 * @param programType type of the program
 * @param programId ID of the program
 * @param runtimeArgs args of the program
 * @throws IOException if a network error occurred
 * @throws ProgramNotFoundException if the application or program could not be found
 * @throws UnauthorizedException if the request is not authorized successfully in the gateway server
 */
public void setRuntimeArgs(String appId,ProgramType programType,String programId,Map<String,String> runtimeArgs) throws IOException, UnauthorizedException, ProgramNotFoundException {
  Id.Application app=Id.Application.from(config.getNamespace(),appId);
  Id.Program program=Id.Program.from(app,programType,programId);
  String path=String.format("String_Node_Str",appId,programType.getCategoryName(),programId);
  URL url=config.resolveNamespacedURLV3(path);
  HttpRequest request=HttpRequest.put(url).withBody(GSON.toJson(runtimeArgs)).build();
  HttpResponse response=restClient.execute(request,config.getAccessToken(),HttpURLConnection.HTTP_NOT_FOUND);
  if (response.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
    throw new ProgramNotFoundException(program);
  }
}
Program: 6910
Project: 6910
Buggy source:
/** 
 * Gets the runtime args of a program.
 * @param appId ID of the application tat the program belongs to
 * @param programType type of the program
 * @param programId ID of the program
 * @return runtime args of the program
 * @throws IOException if a network error occurred
 * @throws ProgramNotFoundException if the application or program could not be found
 * @throws UnauthorizedException if the request is not authorized successfully in the gateway server
 */
public Map<String,String> getRuntimeArgs(String appId,ProgramType programType,String programId) throws IOException, UnauthorizedException, ProgramNotFoundException {
  Id.Application app=Id.Application.from(config.getNamespace(),appId);
  Id.Program program=Id.Program.from(app,programType,programId);
  String path=String.format("String_Node_Str",appId,programType.getCategoryName(),programId);
  URL url=config.resolveNamespacedURLV3(path);
  HttpResponse response=restClient.execute(HttpMethod.GET,url,config.getAccessToken(),HttpURLConnection.HTTP_NOT_FOUND);
  if (response.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
    throw new ProgramNotFoundException(program);
  }
  return ObjectResponse.fromJsonBody(response,new TypeToken<Map<String,String>>(){
  }
).getResponseObject();
}

Fixed version (ground truth):
/** 
 * Gets the runtime args of a program.
 * @param appId ID of the application that the program belongs to
 * @param programType type of the program
 * @param programId ID of the program
 * @return runtime args of the program
 * @throws IOException if a network error occurred
 * @throws ProgramNotFoundException if the application or program could not be found
 * @throws UnauthorizedException if the request is not authorized successfully in the gateway server
 */
public Map<String,String> getRuntimeArgs(String appId,ProgramType programType,String programId) throws IOException, UnauthorizedException, ProgramNotFoundException {
  Id.Application app=Id.Application.from(config.getNamespace(),appId);
  Id.Program program=Id.Program.from(app,programType,programId);
  String path=String.format("String_Node_Str",appId,programType.getCategoryName(),programId);
  URL url=config.resolveNamespacedURLV3(path);
  HttpResponse response=restClient.execute(HttpMethod.GET,url,config.getAccessToken(),HttpURLConnection.HTTP_NOT_FOUND);
  if (response.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) {
    throw new ProgramNotFoundException(program);
  }
  return ObjectResponse.fromJsonBody(response,new TypeToken<Map<String,String>>(){
  }
).getResponseObject();
}
Program: 6911
Project: 6911
Buggy source:
@Override public void perform(Arguments arguments,PrintStream output) throws Exception {
  String[] programIdParts=arguments.get(elementType.getArgumentName().toString()).split("String_Node_Str");
  String appId=programIdParts[0];
  String startString=arguments.get(ArgumentName.START_TIME.toString(),"String_Node_Str");
  long start=TimeMathParser.parseTime(startString);
  String stopString=arguments.get(ArgumentName.END_TIME.toString(),Long.toString(Integer.MAX_VALUE));
  long stop=TimeMathParser.parseTime(stopString);
  String logs;
  if (elementType.getProgramType() != null) {
    if (programIdParts.length < 2) {
      throw new CommandInputError(this);
    }
    String programId=programIdParts[1];
    logs=programClient.getProgramLogs(appId,elementType.getProgramType(),programId,start,stop);
  }
 else {
    throw new IllegalArgumentException("String_Node_Str" + elementType.getNamePlural());
  }
  output.println(logs);
}

Fixed version (ground truth):
@Override public void perform(Arguments arguments,PrintStream output) throws Exception {
  String[] programIdParts=arguments.get(elementType.getArgumentName().toString()).split("String_Node_Str");
  String appId=programIdParts[0];
  String startString=arguments.get(ArgumentName.START_TIME.toString(),"String_Node_Str");
  long start=TimeMathParser.parseTimeInSeconds(startString);
  String stopString=arguments.get(ArgumentName.END_TIME.toString(),Long.toString(Integer.MAX_VALUE));
  long stop=TimeMathParser.parseTimeInSeconds(stopString);
  String logs;
  if (elementType.getProgramType() != null) {
    if (programIdParts.length < 2) {
      throw new CommandInputError(this);
    }
    String programId=programIdParts[1];
    logs=programClient.getProgramLogs(appId,elementType.getProgramType(),programId,start,stop);
  }
 else {
    throw new IllegalArgumentException("String_Node_Str" + elementType.getNamePlural());
  }
  output.println(logs);
}
Program: 6912
Project: 6912
Buggy source:
private MetricQueryResult executeQuery(MetricQueryRequest queryRequest) throws Exception {
  if (queryRequest.getMetrics().size() == 0) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  Map<String,String> tagsSliceBy=humanToTagNames(transformTagMap(queryRequest.getTags()));
  MetricQueryRequest.TimeRange timeRange=queryRequest.getTimeRange();
  MetricDataQuery query=new MetricDataQuery(timeRange.getStart(),timeRange.getEnd(),timeRange.getResolutionInSeconds(),timeRange.getCount(),toMetrics(queryRequest.getMetrics()),tagsSliceBy,transformGroupByTags(queryRequest.getGroupBy()),timeRange.getInterpolate());
  Collection<MetricTimeSeries> queryResult=metricStore.query(query);
  long endTime=timeRange.getEnd();
  if (timeRange.getResolutionInSeconds() == Integer.MAX_VALUE && endTime == 0) {
    endTime=TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis());
  }
  return decorate(queryResult,timeRange.getStart(),endTime,timeRange.getResolutionInSeconds());
}

Fixed version (ground truth):
private MetricQueryResult executeQuery(MetricQueryRequest queryRequest) throws Exception {
  if (queryRequest.getMetrics().size() == 0) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  Map<String,String> tagsSliceBy=humanToTagNames(transformTagMap(queryRequest.getTags()));
  MetricQueryRequest.TimeRange timeRange=queryRequest.getTimeRange();
  MetricDataQuery query=new MetricDataQuery(timeRange.getStart(),timeRange.getEnd(),timeRange.getResolutionInSeconds(),timeRange.getCount(),toMetrics(queryRequest.getMetrics()),tagsSliceBy,transformGroupByTags(queryRequest.getGroupBy()),timeRange.getInterpolate());
  Collection<MetricTimeSeries> queryResult=metricStore.query(query);
  long endTime=timeRange.getEnd();
  if (timeRange.getResolutionInSeconds() == Integer.MAX_VALUE && endTime == 0) {
    endTime=TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis());
  }
  return decorate(queryResult,timeRange.getStart(),endTime,timeRange.getResolutionInSeconds().intValue());
}
Program: 6914
Project: 6914
Buggy source:
public JmsPluginConfig(String destinationName,String initialContextFactory,String providerUrl,@Nullable Integer messagesToReceive,@Nullable String connectionFactoryName,@Nullable String jmsPluginName,@Nullable String jmsPluginType){
  this.destinationName=destinationName;
  if (messagesToReceive != null) {
    this.messagesToReceive=messagesToReceive;
  }
 else {
    this.messagesToReceive=50;
  }
  this.initialContextFactory=initialContextFactory;
  this.providerUrl=providerUrl;
  if (connectionFactoryName != null) {
    this.connectionFactoryName=connectionFactoryName;
  }
 else {
    this.connectionFactoryName=DEFAULT_CONNECTION_FACTORY;
  }
  this.jmsPluginName=jmsPluginName;
  if (this.jmsPluginName == null) {
    this.jmsPluginName=Context.INITIAL_CONTEXT_FACTORY;
  }
  this.jmsPluginType=jmsPluginType;
  if (this.jmsPluginType == null) {
    this.jmsPluginType=JMS_PROVIDER;
  }
}

Fixed version (ground truth):
public JmsPluginConfig(String destinationName,String initialContextFactory,String providerUrl,@Nullable Integer messagesToReceive,@Nullable String connectionFactoryName,@Nullable String jmsPluginName,@Nullable String jmsPluginType,@Nullable String customProperties){
  this.destinationName=destinationName;
  if (messagesToReceive != null) {
    this.messagesToReceive=messagesToReceive;
  }
 else {
    this.messagesToReceive=50;
  }
  this.initialContextFactory=initialContextFactory;
  this.providerUrl=providerUrl;
  if (connectionFactoryName != null) {
    this.connectionFactoryName=connectionFactoryName;
  }
 else {
    this.connectionFactoryName=DEFAULT_CONNECTION_FACTORY;
  }
  this.jmsPluginName=jmsPluginName;
  if (this.jmsPluginName == null) {
    this.jmsPluginName=Context.INITIAL_CONTEXT_FACTORY;
  }
  this.jmsPluginType=jmsPluginType;
  if (this.jmsPluginType == null) {
    this.jmsPluginType=JMS_PROVIDER;
  }
  this.customProperties=customProperties;
}
Program: 6915
Project: 6915
Buggy source:
/** 
 * Initialize the Source.
 * @param context {@link RealtimeContext}
 */
public void initialize(RealtimeContext context) throws Exception {
  super.initialize(context);
  Map<String,String> runtimeArguments=Maps.newHashMap();
  if (config.getProperties() != null) {
    runtimeArguments.putAll(config.getProperties().getProperties());
  }
  Integer configMessagesToReceive=config.messagesToReceive;
  messagesToReceive=configMessagesToReceive.intValue();
  final Hashtable<String,String> envVars=new Hashtable<String,String>();
  for (  Map.Entry<String,String> entry : runtimeArguments.entrySet()) {
    envVars.put(entry.getKey(),entry.getValue());
  }
  envVars.put(Context.INITIAL_CONTEXT_FACTORY,config.initialContextFactory);
  envVars.put(Context.PROVIDER_URL,config.providerUrl);
  Class<Object> driver=context.loadPluginClass(getPluginId());
  ClassLoader driverCL=null;
  if (driver != null) {
    driverCL=driver.getClassLoader();
  }
  initializeJMSConnection(envVars,config.destinationName,config.connectionFactoryName,driverCL);
}

Fixed version (ground truth):
/** 
 * Initialize the Source.
 * @param context {@link RealtimeContext}
 */
public void initialize(RealtimeContext context) throws Exception {
  super.initialize(context);
  Map<String,String> runtimeArguments=Maps.newHashMap();
  if (config.getProperties() != null) {
    runtimeArguments.putAll(config.getProperties().getProperties());
  }
  if (config.customProperties != null) {
    Map<String,String> customProperties=GSON.fromJson(config.customProperties,STRING_MAP_TYPE);
    runtimeArguments.putAll(customProperties);
  }
  Integer configMessagesToReceive=config.messagesToReceive;
  messagesToReceive=configMessagesToReceive.intValue();
  final Hashtable<String,String> envVars=new Hashtable<String,String>();
  for (  Map.Entry<String,String> entry : runtimeArguments.entrySet()) {
    envVars.put(entry.getKey(),entry.getValue());
  }
  envVars.put(Context.INITIAL_CONTEXT_FACTORY,config.initialContextFactory);
  envVars.put(Context.PROVIDER_URL,config.providerUrl);
  Class<Object> driver=context.loadPluginClass(getPluginId());
  ClassLoader driverCL=null;
  if (driver != null) {
    driverCL=driver.getClassLoader();
  }
  initializeJMSConnection(envVars,config.destinationName,config.connectionFactoryName,driverCL);
}
Program: 6916
Project: 6916
Buggy source:
private void initializeJmsSource(String destination,int messageReceive,String initialContextFactory,String providerUrl){
  jmsSource=new JmsSource(new JmsPluginConfig(destination,initialContextFactory,providerUrl,messageReceive,JmsSource.DEFAULT_CONNECTION_FACTORY,null,null));
}

Fixed version (ground truth):
private void initializeJmsSource(String destination,int messageReceive,String initialContextFactory,String providerUrl){
  jmsSource=new JmsSource(new JmsPluginConfig(destination,initialContextFactory,providerUrl,messageReceive,JmsSource.DEFAULT_CONNECTION_FACTORY,null,null,null));
}
Program: 6917
Project: 6917
Buggy source:
public JmsPluginConfig(String destinationName,String initialContextFactory,String providerUrl,@Nullable Integer messagesToReceive,@Nullable String connectionFactoryName,@Nullable String jmsPluginName,@Nullable String jmsPluginType){
  this.destinationName=destinationName;
  if (messagesToReceive != null) {
    this.messagesToReceive=messagesToReceive;
  }
 else {
    this.messagesToReceive=50;
  }
  this.initialContextFactory=initialContextFactory;
  this.providerUrl=providerUrl;
  if (connectionFactoryName != null) {
    this.connectionFactoryName=connectionFactoryName;
  }
 else {
    this.connectionFactoryName=JMS_CONNECTION_FACTORY_NAME;
  }
  this.jmsPluginName=jmsPluginName;
  if (this.jmsPluginName == null) {
    this.jmsPluginName=Context.INITIAL_CONTEXT_FACTORY;
  }
  this.jmsPluginType=jmsPluginType;
  if (this.jmsPluginType == null) {
    this.jmsPluginType=JMS_PROVIDER;
  }
}

Fixed version (ground truth):
public JmsPluginConfig(String destinationName,String initialContextFactory,String providerUrl,@Nullable Integer messagesToReceive,@Nullable String connectionFactoryName,@Nullable String jmsPluginName,@Nullable String jmsPluginType,@Nullable String customProperties){
  this.destinationName=destinationName;
  if (messagesToReceive != null) {
    this.messagesToReceive=messagesToReceive;
  }
 else {
    this.messagesToReceive=50;
  }
  this.initialContextFactory=initialContextFactory;
  this.providerUrl=providerUrl;
  if (connectionFactoryName != null) {
    this.connectionFactoryName=connectionFactoryName;
  }
 else {
    this.connectionFactoryName=JMS_CONNECTION_FACTORY_NAME;
  }
  this.jmsPluginName=jmsPluginName;
  if (this.jmsPluginName == null) {
    this.jmsPluginName=Context.INITIAL_CONTEXT_FACTORY;
  }
  this.jmsPluginType=jmsPluginType;
  if (this.jmsPluginType == null) {
    this.jmsPluginType=JMS_PROVIDER;
  }
  this.customProperties=customProperties;
}
Program: 6918
Project: 6918
Buggy source:
/** 
 * Initialize the Source.
 * @param context {@link RealtimeContext}
 */
public void initialize(RealtimeContext context) throws Exception {
  super.initialize(context);
  Map<String,String> runtimeArguments=Maps.newHashMap();
  if (config.getProperties() != null) {
    runtimeArguments.putAll(config.getProperties().getProperties());
  }
  Integer configMessagesToReceive=config.messagesToReceive;
  messagesToReceive=configMessagesToReceive.intValue();
  final Hashtable<String,String> envVars=new Hashtable<String,String>();
  for (  Map.Entry<String,String> entry : runtimeArguments.entrySet()) {
    envVars.put(entry.getKey(),entry.getValue());
  }
  envVars.put(Context.INITIAL_CONTEXT_FACTORY,config.initialContextFactory);
  envVars.put(Context.PROVIDER_URL,config.providerUrl);
  Class<Object> driver=context.loadPluginClass(getPluginId());
  ClassLoader driverCL=null;
  if (driver != null) {
    driverCL=driver.getClassLoader();
  }
  initializeJMSConnection(envVars,config.destinationName,config.connectionFactoryName,driverCL);
}

Fixed version (ground truth):
/** 
 * Initialize the Source.
 * @param context {@link RealtimeContext}
 */
public void initialize(RealtimeContext context) throws Exception {
  super.initialize(context);
  Map<String,String> runtimeArguments=Maps.newHashMap();
  if (config.getProperties() != null) {
    runtimeArguments.putAll(config.getProperties().getProperties());
  }
  if (config.customProperties != null) {
    Map<String,String> customProperties=GSON.fromJson(config.customProperties,STRING_MAP_TYPE);
    runtimeArguments.putAll(customProperties);
  }
  Integer configMessagesToReceive=config.messagesToReceive;
  messagesToReceive=configMessagesToReceive.intValue();
  final Hashtable<String,String> envVars=new Hashtable<String,String>();
  for (  Map.Entry<String,String> entry : runtimeArguments.entrySet()) {
    envVars.put(entry.getKey(),entry.getValue());
  }
  envVars.put(Context.INITIAL_CONTEXT_FACTORY,config.initialContextFactory);
  envVars.put(Context.PROVIDER_URL,config.providerUrl);
  Class<Object> driver=context.loadPluginClass(getPluginId());
  ClassLoader driverCL=null;
  if (driver != null) {
    driverCL=driver.getClassLoader();
  }
  initializeJMSConnection(envVars,config.destinationName,config.connectionFactoryName,driverCL);
}
Program: 6919
Project: 6919
Buggy source:
private void initializeJmsSource(String destination,int messageReceive,String initialContextFactory,String providerUrl){
  jmsSource=new JmsSource(new JmsPluginConfig(destination,initialContextFactory,providerUrl,messageReceive,JmsSource.DEFAULT_CONNECTION_FACTORY,null,null));
}

Fixed version (ground truth):
private void initializeJmsSource(String destination,int messageReceive,String initialContextFactory,String providerUrl){
  jmsSource=new JmsSource(new JmsPluginConfig(destination,initialContextFactory,providerUrl,messageReceive,JmsSource.DEFAULT_CONNECTION_FACTORY,null,null,null));
}
Program: 6920
Project: 6920
Buggy source:
/** 
 * Initialize the Source.
 * @param context {@link RealtimeContext}
 */
public void initialize(RealtimeContext context) throws Exception {
  super.initialize(context);
  Map<String,String> runtimeArguments=Maps.newHashMap();
  if (config.getProperties() != null) {
    runtimeArguments.putAll(config.getProperties().getProperties());
  }
  Integer configMessagesToReceive=config.messagesToReceive;
  messagesToReceive=configMessagesToReceive.intValue();
  final Hashtable<String,String> envVars=new Hashtable<String,String>();
  for (  Map.Entry<String,String> entry : runtimeArguments.entrySet()) {
    envVars.put(entry.getKey(),entry.getValue());
  }
  envVars.put(Context.INITIAL_CONTEXT_FACTORY,config.initialContextFactory);
  envVars.put(Context.PROVIDER_URL,config.providerUrl);
  Class<Object> driver=context.loadPluginClass("String_Node_Str");
  ClassLoader driverCL=null;
  if (driver != null) {
    driverCL=driver.getClassLoader();
  }
  initializeJMSConnection(envVars,config.destinationName,config.connectionFactoryName,driverCL);
}

Fixed version (ground truth):
/** 
 * Initialize the Source.
 * @param context {@link RealtimeContext}
 */
public void initialize(RealtimeContext context) throws Exception {
  super.initialize(context);
  Map<String,String> runtimeArguments=Maps.newHashMap();
  if (config.getProperties() != null) {
    runtimeArguments.putAll(config.getProperties().getProperties());
  }
  Integer configMessagesToReceive=config.messagesToReceive;
  messagesToReceive=configMessagesToReceive.intValue();
  final Hashtable<String,String> envVars=new Hashtable<String,String>();
  for (  Map.Entry<String,String> entry : runtimeArguments.entrySet()) {
    envVars.put(entry.getKey(),entry.getValue());
  }
  envVars.put(Context.INITIAL_CONTEXT_FACTORY,config.initialContextFactory);
  envVars.put(Context.PROVIDER_URL,config.providerUrl);
  Class<Object> driver=context.loadPluginClass(getPluginId());
  ClassLoader driverCL=null;
  if (driver != null) {
    driverCL=driver.getClassLoader();
  }
  initializeJMSConnection(envVars,config.destinationName,config.connectionFactoryName,driverCL);
}
Program: 6921
Project: 6921
Buggy source:
@Override public void configurePipeline(PipelineConfigurer pipelineConfigurer){
  String pluginId=String.format("String_Node_Str","String_Node_Str",config.jmsPluginType,config.jmsPluginName);
  Class<Object> driver=pipelineConfigurer.usePluginClass(config.jmsPluginType,config.jmsPluginName,pluginId,PluginProperties.builder().build());
  Preconditions.checkArgument(driver != null,"String_Node_Str");
}

Fixed version (ground truth):
@Override public void configurePipeline(PipelineConfigurer pipelineConfigurer){
  String pluginId=getPluginId();
  Class<Object> driver=pipelineConfigurer.usePluginClass(config.jmsPluginType,config.jmsPluginName,pluginId,PluginProperties.builder().build());
  Preconditions.checkArgument(driver != null,"String_Node_Str");
}
Program: 6922
Project: 6922
Buggy source:
/** 
 * Helper method to create new   {@link KafkaConsumerInfo} for map of topic partitions.
 * @param config
 * @return
 */
private Map<TopicPartition,KafkaConsumerInfo<OFFSET>> createConsumerInfos(Map<TopicPartition,Integer> config){
  ImmutableMap.Builder<TopicPartition,KafkaConsumerInfo<OFFSET>> consumers=ImmutableMap.builder();
  for (  Map.Entry<TopicPartition,Integer> entry : config.entrySet()) {
    consumers.put(entry.getKey(),new KafkaConsumerInfo<OFFSET>(entry.getKey(),entry.getValue(),getBeginOffset(entry.getKey())));
  }
  return consumers.build();
}

Fixed version (ground truth):
/** 
 * Helper method to create new   {@link KafkaConsumerInfo} for map of topic partitions.
 * @param config
 * @return KafkaConsumerInfo mapped to TopicPartitions
 */
private Map<TopicPartition,KafkaConsumerInfo<OFFSET>> createConsumerInfos(Map<TopicPartition,Integer> config){
  ImmutableMap.Builder<TopicPartition,KafkaConsumerInfo<OFFSET>> consumers=ImmutableMap.builder();
  for (  Map.Entry<TopicPartition,Integer> entry : config.entrySet()) {
    consumers.put(entry.getKey(),new KafkaConsumerInfo<OFFSET>(entry.getKey(),entry.getValue(),getBeginOffset(entry.getKey())));
  }
  return consumers.build();
}
Program: 6924
Project: 6924
Buggy source:
@Override public Module getStandaloneModules(){
  return new PrivateModule(){
    @Override protected void configure(){
      install(new SystemDatasetRuntimeModule().getStandaloneModules());
      install(new FactoryModuleBuilder().implement(DatasetDefinitionRegistry.class,DefaultDatasetDefinitionRegistry.class).build(DatasetDefinitionRegistryFactory.class));
      bind(DatasetFramework.class).annotatedWith(Names.named("String_Node_Str")).toProvider(DatasetMdsProvider.class);
      expose(DatasetFramework.class).annotatedWith(Names.named("String_Node_Str"));
      bind(MDSDatasetsRegistry.class).in(Singleton.class);
      Multibinder.newSetBinder(binder(),DatasetMetricsReporter.class).addBinding().to(LevelDBDatasetMetricsReporter.class);
      bind(DatasetService.class);
      expose(DatasetService.class);
      Named datasetUserName=Names.named(Constants.Service.DATASET_EXECUTOR);
      Multibinder<HttpHandler> handlerBinder=Multibinder.newSetBinder(binder(),HttpHandler.class,datasetUserName);
      CommonHandlers.add(handlerBinder);
      handlerBinder.addBinding().to(DatasetAdminOpHTTPHandler.class);
      bind(DatasetOpExecutorService.class).in(Scopes.SINGLETON);
      expose(DatasetOpExecutorService.class);
      bind(DatasetOpExecutor.class).to(LocalDatasetOpExecutor.class);
      expose(DatasetOpExecutor.class);
      bind(UnderlyingSystemNamespaceAdmin.class).to(LocalUnderlyingSystemNamespaceAdmin.class);
      expose(UnderlyingSystemNamespaceAdmin.class);
    }
  }
;
}

Fixed version (ground truth):
@Override public Module getStandaloneModules(){
  return new PrivateModule(){
    @Override protected void configure(){
      install(new SystemDatasetRuntimeModule().getStandaloneModules());
      install(new FactoryModuleBuilder().implement(DatasetDefinitionRegistry.class,DefaultDatasetDefinitionRegistry.class).build(DatasetDefinitionRegistryFactory.class));
      bind(DatasetFramework.class).annotatedWith(Names.named("String_Node_Str")).toProvider(DatasetMdsProvider.class);
      expose(DatasetFramework.class).annotatedWith(Names.named("String_Node_Str"));
      bind(MDSDatasetsRegistry.class).in(Singleton.class);
      Multibinder.newSetBinder(binder(),DatasetMetricsReporter.class).addBinding().to(LevelDBDatasetMetricsReporter.class);
      bind(DatasetService.class);
      expose(DatasetService.class);
      Named datasetUserName=Names.named(Constants.Service.DATASET_EXECUTOR);
      Multibinder<HttpHandler> handlerBinder=Multibinder.newSetBinder(binder(),HttpHandler.class,datasetUserName);
      CommonHandlers.add(handlerBinder);
      handlerBinder.addBinding().to(DatasetAdminOpHTTPHandler.class);
      bind(DatasetOpExecutorService.class).in(Scopes.SINGLETON);
      expose(DatasetOpExecutorService.class);
      bind(DatasetOpExecutor.class).to(LocalDatasetOpExecutor.class);
      expose(DatasetOpExecutor.class);
      bind(StorageProviderNamespaceAdmin.class).to(LocalStorageProviderNamespaceAdmin.class);
      expose(StorageProviderNamespaceAdmin.class);
    }
  }
;
}