nus-yam/ex-repair huggingface dataset:
Program: 43089
Project: 43089
Buggy source:
public void onBlockFromTo(BlockFromToEvent event){
  if (event.isCancelled())   return;
  List<Integer> fluidBlocks=Arrays.asList(0,27,28,31,32,37,38,39,40,50,51,55,59,66,69,70,75,76,78,93,94);
  Location loc=event.getToBlock().getLocation();
  BlockState from=event.getBlock().getState();
  BlockState to=event.getToBlock().getState();
  MaterialData data=from.getData();
  if (from.getTypeId() == 10 || from.getTypeId() == 11) {
    if (fluidBlocks.contains(to.getTypeId())) {
      data.setData((byte)(from.getRawData() + 1));
      from.setData(data);
    }
 else     if (to.getTypeId() == 8 || to.getTypeId() == 9) {
      from.setTypeId(event.getFace() == BlockFace.DOWN ? 10 : 4);
      data.setData((byte)0);
      from.setData(data);
    }
    DataManager.addEntry(new BlockChangeEntry("String_Node_Str",DataType.LAVA_FLOW,loc,to,from));
  }
 else   if (from.getTypeId() == 8 || from.getTypeId() == 9) {
    if (fluidBlocks.contains(to.getTypeId())) {
      data.setData((byte)(from.getRawData() + 1));
      from.setData(data);
      DataManager.addEntry(new BlockChangeEntry("String_Node_Str",DataType.WATER_FLOW,loc,to,from));
    }
    BlockState lower=event.getToBlock().getRelative(BlockFace.DOWN).getState();
    if (lower.getTypeId() == 10 || lower.getTypeId() == 11) {
      from.setTypeId(lower.getData().getData() == 0 ? 49 : 4);
      loc.setY(loc.getY() - 1);
      DataManager.addEntry(new BlockChangeEntry("String_Node_Str",DataType.WATER_FLOW,loc,lower,from));
    }
  }
}

Fixed version (ground truth):
public void onBlockFromTo(BlockFromToEvent event){
  if (event.isCancelled())   return;
  List<Integer> fluidBlocks=Arrays.asList(0,27,28,31,32,37,38,39,40,50,51,55,59,66,69,70,75,76,78,93,94);
  Location loc=event.getToBlock().getLocation();
  BlockState from=event.getBlock().getState();
  BlockState to=event.getToBlock().getState();
  MaterialData data=from.getData();
  if (from.getTypeId() == 10 || from.getTypeId() == 11) {
  }
 else   if (from.getTypeId() == 8 || from.getTypeId() == 9) {
    if (fluidBlocks.contains(to.getTypeId())) {
      data.setData((byte)(from.getRawData() + 1));
      from.setData(data);
      DataManager.addEntry(new BlockChangeEntry("String_Node_Str",DataType.WATER_FLOW,loc,to,from));
    }
    BlockState lower=event.getToBlock().getRelative(BlockFace.DOWN).getState();
    if (lower.getTypeId() == 10 || lower.getTypeId() == 11) {
      from.setTypeId(lower.getData().getData() == 0 ? 49 : 4);
      loc.setY(loc.getY() - 1);
      DataManager.addEntry(new BlockChangeEntry("String_Node_Str",DataType.WATER_FLOW,loc,lower,from));
    }
  }
}
Program: 43090
Project: 43090
Buggy source:
/** 
 * Empty the   {@link DataEntry} queue into the database
 */
public void run(){
  if (queue.isEmpty())   return;
  JDCConnection conn=getConnection();
  PreparedStatement stmnt=null;
  try {
    while (!queue.isEmpty()) {
      DataEntry entry=queue.poll();
      if (!dbPlayers.containsKey(entry.getPlayer()))       if (!addPlayer(entry.getPlayer()))       continue;
      if (!dbWorlds.containsKey(entry.getWorld()))       if (!addWorld(entry.getWorld()))       continue;
      if (entry.getDataId() > 0) {
        stmnt=conn.prepareStatement("String_Node_Str" + Config.DbHawkEyeTable + "String_Node_Str");
        stmnt.setInt(10,entry.getDataId());
      }
 else       stmnt=conn.prepareStatement("String_Node_Str" + Config.DbHawkEyeTable + "String_Node_Str");
      stmnt.setString(1,entry.getDate());
      stmnt.setInt(2,dbPlayers.get(entry.getPlayer()));
      stmnt.setInt(3,entry.getType().getId());
      stmnt.setInt(4,dbWorlds.get(entry.getWorld()));
      stmnt.setDouble(5,entry.getX());
      stmnt.setDouble(6,entry.getY());
      stmnt.setDouble(7,entry.getZ());
      stmnt.setString(8,entry.getSqlData());
      stmnt.setString(9,entry.getPlugin());
      stmnt.executeUpdate();
    }
  }
 catch (  SQLException ex) {
    Util.severe("String_Node_Str" + ex);
  }
 finally {
    try {
      if (stmnt != null)       stmnt.close();
      conn.close();
    }
 catch (    SQLException ex) {
      Util.severe("String_Node_Str" + ex);
    }
  }
}

Fixed version (ground truth):
/** 
 * Empty the   {@link DataEntry} queue into the database
 */
public void run(){
  if (queue.isEmpty())   return;
  JDCConnection conn=getConnection();
  PreparedStatement stmnt=null;
  try {
    while (!queue.isEmpty()) {
      DataEntry entry=queue.poll();
      if (!dbPlayers.containsKey(entry.getPlayer()) && !addPlayer(entry.getPlayer()))       continue;
      if (!dbWorlds.containsKey(entry.getWorld()) && !addWorld(entry.getWorld()))       continue;
      if (entry.getPlayer() == null || dbPlayers.get(entry.getPlayer()) == null)       continue;
      if (entry.getDataId() > 0) {
        stmnt=conn.prepareStatement("String_Node_Str" + Config.DbHawkEyeTable + "String_Node_Str");
        stmnt.setInt(10,entry.getDataId());
      }
 else       stmnt=conn.prepareStatement("String_Node_Str" + Config.DbHawkEyeTable + "String_Node_Str");
      stmnt.setString(1,entry.getDate());
      stmnt.setInt(2,dbPlayers.get(entry.getPlayer()));
      stmnt.setInt(3,entry.getType().getId());
      stmnt.setInt(4,dbWorlds.get(entry.getWorld()));
      stmnt.setDouble(5,entry.getX());
      stmnt.setDouble(6,entry.getY());
      stmnt.setDouble(7,entry.getZ());
      stmnt.setString(8,entry.getSqlData());
      stmnt.setString(9,entry.getPlugin());
      stmnt.executeUpdate();
    }
  }
 catch (  SQLException ex) {
    Util.severe("String_Node_Str" + ex);
  }
 finally {
    try {
      if (stmnt != null)       stmnt.close();
      conn.close();
    }
 catch (    SQLException ex) {
      Util.severe("String_Node_Str" + ex);
    }
  }
}
Program: 43091
Project: 43091
Buggy source:
/** 
 * Extracts the sign data from a block
 * @param block
 */
private void interpretSignBlock(Block block){
  Sign sign=(Sign)block;
  org.bukkit.material.Sign signData=((org.bukkit.material.Sign)sign.getData());
  if (signData.isWallSign())   this.facing=signData.getAttachedFace();
 else   this.facing=signData.getFacing();
  this.wallSign=signData.isWallSign();
  this.lines=sign.getLines();
}

Fixed version (ground truth):
/** 
 * Extracts the sign data from a block
 * @param block
 */
private void interpretSignBlock(Block block){
  if (!(block instanceof Sign))   return;
  Sign sign=(Sign)block;
  org.bukkit.material.Sign signData=((org.bukkit.material.Sign)sign.getData());
  if (signData.isWallSign())   this.facing=signData.getAttachedFace();
 else   this.facing=signData.getFacing();
  this.wallSign=signData.isWallSign();
  this.lines=sign.getLines();
}
Program: 43094
Project: 43094
Buggy source:
/** 
 * Enables the HawkEye tool
 * @param session
 * @param player
 */
public static void enableTool(PlayerSession session,Player player){
  Inventory inv=player.getInventory();
  session.setUsingTool(true);
  ItemStack stack=BlockUtil.itemStringToStack(Config.ToolBlock,1);
  if (!inv.contains(stack) && Config.GiveTool) {
    int first=inv.firstEmpty();
    if (first == -1)     player.getWorld().dropItem(player.getLocation(),stack);
 else     inv.setItem(first,stack);
  }
  if (player.getItemInHand().getType() != Material.LOG && inv.first(Material.LOG) != -1) {
    ItemStack back=player.getItemInHand().clone();
    int slot=inv.first(Material.LOG);
    player.setItemInHand(inv.getItem(inv.first(Material.LOG)));
    if (back.getAmount() == 0)     inv.clear(slot);
 else     inv.setItem(slot,back);
  }
  Util.sendMessage(player,"String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Enables the HawkEye tool
 * @param session
 * @param player
 */
public static void enableTool(PlayerSession session,Player player){
  Inventory inv=player.getInventory();
  session.setUsingTool(true);
  ItemStack stack=BlockUtil.itemStringToStack(Config.ToolBlock,1);
  if (!inv.contains(stack) && Config.GiveTool) {
    int first=inv.firstEmpty();
    if (first == -1)     player.getWorld().dropItem(player.getLocation(),stack);
 else     inv.setItem(first,stack);
  }
  int first=inv.first(BlockUtil.getIdFromString(Config.ToolBlock));
  if (!BlockUtil.getItemString(player.getItemInHand()).equals(Config.ToolBlock) && first != -1) {
    ItemStack back=player.getItemInHand().clone();
    player.setItemInHand(inv.getItem(first));
    if (back.getAmount() == 0)     inv.clear(first);
 else     inv.setItem(first,back);
  }
  Util.sendMessage(player,"String_Node_Str");
}
Program: 43096
Project: 43096
Buggy source:
public void checkInventoryOpen(Player player,Block block){
  if (!(block instanceof ContainerBlock))   return;
  ContainerBlock container=(ContainerBlock)block;
  accessList.add(new ContainerAccess(container,player,InventoryUtil.compressInventory(InventoryUtil.getContainerContents(container)),block.getLocation()));
}

Fixed version (ground truth):
public void checkInventoryOpen(Player player,Block block){
  if (!(block.getState() instanceof ContainerBlock))   return;
  ContainerBlock container=(ContainerBlock)(block.getState());
  accessList.add(new ContainerAccess(container,player,InventoryUtil.compressInventory(InventoryUtil.getContainerContents(container)),block.getLocation()));
}
Program: 43097
Project: 43097
Buggy source:
public void checkInventoryClose(Player player){
  ContainerAccess access=null;
  for (  ContainerAccess acc : accessList) {
    if (acc.player == player)     access=acc;
  }
  if (access == null)   return;
  HashMap<String,Integer> after=InventoryUtil.compressInventory(InventoryUtil.getContainerContents(access.container));
  String diff=InventoryUtil.createDifferenceString(access.beforeInv,after);
  DataManager.addEntry(new ContainerEntry(player,access.loc,diff));
  accessList.remove(access);
}

Fixed version (ground truth):
public void checkInventoryClose(Player player){
  ContainerAccess access=null;
  for (  ContainerAccess acc : accessList) {
    if (acc.player == player)     access=acc;
  }
  if (access == null)   return;
  HashMap<String,Integer> after=InventoryUtil.compressInventory(InventoryUtil.getContainerContents(access.container));
  String diff=InventoryUtil.createDifferenceString(access.beforeInv,after);
  Util.info(diff);
  if (diff.length() > 1)   DataManager.addEntry(new ContainerEntry(player,access.loc,diff));
  accessList.remove(access);
}
Program: 43100
Project: 43100
Buggy source:
/** 
 * Returns the name of the block, with its data if applicable
 * @param blockData
 * @return
 */
public static String getBlockStringName(String blockData){
  String[] blockArr=blockData.split("String_Node_Str");
  Material.getMaterial(Integer.parseInt(blockArr[0]));
  if (blockArr.length > 1)   return Material.getMaterial(Integer.parseInt(blockArr[0])).name() + "String_Node_Str" + blockArr[1];
 else   return Material.getMaterial(Integer.parseInt(blockArr[0])).name();
}

Fixed version (ground truth):
/** 
 * Returns the name of the block, with its data if applicable
 * @param blockData
 * @return
 */
public static String getBlockStringName(String blockData){
  String[] blockArr=blockData.split("String_Node_Str");
  if (!Util.isInteger(blockArr[0]))   return blockData;
  if (blockArr.length > 1)   return Material.getMaterial(Integer.parseInt(blockArr[0])).name() + "String_Node_Str" + blockArr[1];
 else   return Material.getMaterial(Integer.parseInt(blockArr[0])).name();
}
Program: 43101
Project: 43101
Buggy source:
/** 
 * Run the undo. Contains appropriate methods of catching errors and notifying the player
 */
public void run(){
  int i=0;
  while (i < 200 && undoQueue.hasNext()) {
    DataEntry entry=undoQueue.next();
    if (entry.getUndoState() == null)     continue;
    if (undoType == RollbackType.GLOBAL) {
      entry.getUndoState().update();
      if (Config.DeleteDataOnRollback)       DataManager.addEntry(entry);
    }
 else {
      Player player=(Player)session.getSender();
      Block block=entry.getUndoState().getBlock();
      player.sendBlockChange(block.getLocation(),block.getType(),block.getData());
    }
    counter++;
  }
  if (!undoQueue.hasNext()) {
    Bukkit.getServer().getScheduler().cancelTask(timerID);
    session.setDoingRollback(false);
    session.setRollbackResults(null);
    Util.debug("String_Node_Str" + counter + "String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Run the undo. Contains appropriate methods of catching errors and notifying the player
 */
public void run(){
  int i=0;
  while (i < 200 && undoQueue.hasNext()) {
    DataEntry entry=undoQueue.next();
    if (entry.getUndoState() == null)     continue;
    if (undoType == RollbackType.GLOBAL) {
      entry.getUndoState().update(true);
      if (Config.DeleteDataOnRollback)       DataManager.addEntry(entry);
    }
 else {
      Player player=(Player)session.getSender();
      Block block=entry.getUndoState().getBlock();
      player.sendBlockChange(block.getLocation(),block.getType(),block.getData());
    }
    counter++;
  }
  if (!undoQueue.hasNext()) {
    Bukkit.getServer().getScheduler().cancelTask(timerID);
    session.setDoingRollback(false);
    session.setRollbackResults(null);
    Util.sendMessage(session.getSender(),"String_Node_Str" + counter + "String_Node_Str");
    Util.debug("String_Node_Str" + counter + "String_Node_Str");
  }
}
Program: 43102
Project: 43102
Buggy source:
public boolean execute(){
  if (!session.isInPreview()) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  Util.sendMessage(sender,"String_Node_Str");
  new Rollback(RollbackType.GLOBAL,session);
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  if (!session.isInPreview()) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  Util.sendMessage(sender,"String_Node_Str");
  new Rollback(RollbackType.GLOBAL,session);
  session.setInPreview(false);
  return true;
}
Program: 43103
Project: 43103
Buggy source:
public boolean execute(){
  if (!session.isInPreview()) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  new Undo(RollbackType.LOCAL,session);
  Util.sendMessage(sender,"String_Node_Str");
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  if (!session.isInPreview()) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  new Undo(RollbackType.LOCAL,session);
  Util.sendMessage(sender,"String_Node_Str");
  session.setInPreview(false);
  return true;
}
Program: 43104
Project: 43104
Buggy source:
public boolean execute(){
  if (session.doingRollback()) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  SearchParser parser=null;
  try {
    parser=new SearchParser(player,args);
    parser.loc=null;
    if (parser.actions.size() > 0) {
      for (      DataType type : parser.actions)       if (!type.canRollback())       throw new IllegalArgumentException("String_Node_Str" + type.getConfigName());
    }
 else {
      for (      DataType type : DataType.values())       if (type.canRollback())       parser.actions.add(type);
    }
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  new SearchQuery(new RollbackCallback(session,RollbackType.LOCAL),parser,SearchDir.DESC);
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  if (session.doingRollback()) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  SearchParser parser=null;
  try {
    parser=new SearchParser(player,args);
    parser.loc=null;
    if (parser.actions.size() > 0) {
      for (      DataType type : parser.actions)       if (!type.canRollback())       throw new IllegalArgumentException("String_Node_Str" + type.getConfigName());
    }
 else {
      for (      DataType type : DataType.values())       if (type.canRollback())       parser.actions.add(type);
    }
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  new SearchQuery(new RollbackCallback(session,RollbackType.LOCAL),parser,SearchDir.DESC);
  session.setInPreview(true);
  return true;
}
Program: 43105
Project: 43105
Buggy source:
public boolean execute(){
  if (!session.isUsingTool()) {
    session.setUsingTool(true);
    if (!player.getInventory().contains(BlockUtil.itemStringToStack(Config.ToolBlock,1))) {
      ItemStack stack=BlockUtil.itemStringToStack(Config.ToolBlock,1);
      int first=player.getInventory().firstEmpty();
      if (first == -1)       player.getWorld().dropItem(player.getLocation(),stack);
 else {
        player.getInventory().setItem(first,player.getInventory().getItemInHand());
        player.getInventory().setItemInHand(stack);
      }
    }
    Util.sendMessage(sender,"String_Node_Str");
  }
 else {
    session.setUsingTool(false);
    Util.sendMessage(sender,"String_Node_Str");
  }
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  if (!session.isUsingTool()) {
    Inventory inv=player.getInventory();
    session.setUsingTool(true);
    ItemStack stack=BlockUtil.itemStringToStack(Config.ToolBlock,1);
    if (!inv.contains(stack)) {
      int first=inv.firstEmpty();
      if (first == -1)       player.getWorld().dropItem(player.getLocation(),stack);
 else       inv.setItem(first,stack);
    }
    ItemStack back=player.getItemInHand().clone();
    int slot=inv.first(stack);
    player.setItemInHand(inv.getItem(inv.first(stack)));
    if (back.getAmount() == 0)     inv.clear(slot);
 else     inv.setItem(slot,back);
    Util.sendMessage(sender,"String_Node_Str");
  }
 else {
    session.setUsingTool(false);
    Util.sendMessage(sender,"String_Node_Str");
  }
  return true;
}
Program: 43106
Project: 43106
Buggy source:
/** 
 * Method called by the command manager in   {@link HawkEye} to run the command.Arguments are processed into a list for easier manipulating. Argument lengths, permissions and sender types are all handled.
 * @param csender {@link CommandSender} to send data to
 * @param preArgs arguments to be processed
 * @param cmd command being executed
 * @return true on success, false if there is an error in the checks or if the extending command returns false
 */
public boolean run(HawkEye instace,CommandSender csender,String[] preArgs,String cmd){
  plugin=instace;
  sender=csender;
  session=HawkEye.getSession(sender);
  usedCommand=cmd;
  args.clear();
  for (  String arg : preArgs)   args.add(arg);
  Util.info(name.split("String_Node_Str").length + "String_Node_Str");
  for (int i=0; i <= name.split("String_Node_Str").length && i <= args.size(); i++)   args.remove(0);
  if (argLength > args.size()) {
    sendUsage();
    return true;
  }
  if (bePlayer && !(sender instanceof Player))   return false;
  if (sender instanceof Player)   player=(Player)sender;
  if (!permission()) {
    Util.sendMessage(sender,"String_Node_Str");
    return false;
  }
  return execute();
}

Fixed version (ground truth):
/** 
 * Method called by the command manager in   {@link HawkEye} to run the command.Arguments are processed into a list for easier manipulating. Argument lengths, permissions and sender types are all handled.
 * @param csender {@link CommandSender} to send data to
 * @param preArgs arguments to be processed
 * @param cmd command being executed
 * @return true on success, false if there is an error in the checks or if the extending command returns false
 */
public boolean run(HawkEye instace,CommandSender csender,String[] preArgs,String cmd){
  plugin=instace;
  sender=csender;
  session=HawkEye.getSession(sender);
  usedCommand=cmd;
  args.clear();
  for (  String arg : preArgs)   args.add(arg);
  for (int i=0; i < name.split("String_Node_Str").length && i < args.size(); i++)   args.remove(0);
  if (argLength > args.size()) {
    sendUsage();
    return true;
  }
  if (bePlayer && !(sender instanceof Player))   return false;
  if (sender instanceof Player)   player=(Player)sender;
  if (!permission()) {
    Util.sendMessage(sender,"String_Node_Str");
    return false;
  }
  return execute();
}
Program: 43108
Project: 43108
Buggy source:
/** 
 * Run the undo. Contains appropriate methods of catching errors and notifying the player
 */
public void run(){
  if (session.getRollbackResults() != null) {
    Util.sendMessage(session.getSender(),"String_Node_Str");
    return;
  }
  List<BlockState> results=session.getRollbackUndo();
  if (results == null || results.size() == 0) {
    Util.sendMessage(session.getSender(),"String_Node_Str");
    return;
  }
  Util.sendMessage(session.getSender(),"String_Node_Str" + results.size() + "String_Node_Str");
  for (  BlockState block : results.toArray(new BlockState[0]))   block.update(true);
  Util.sendMessage(session.getSender(),"String_Node_Str");
  session.setRollbackUndo(null);
  session.setRollbackResults(null);
}

Fixed version (ground truth):
/** 
 * Run the undo. Contains appropriate methods of catching errors and notifying the player
 */
public void run(){
  if (session.doingRollback()) {
    Util.sendMessage(session.getSender(),"String_Node_Str");
    return;
  }
  List<BlockState> results=session.getRollbackUndo();
  if (results == null || results.size() == 0) {
    Util.sendMessage(session.getSender(),"String_Node_Str");
    return;
  }
  Util.sendMessage(session.getSender(),"String_Node_Str" + results.size() + "String_Node_Str");
  for (  BlockState block : results.toArray(new BlockState[0]))   block.update(true);
  Util.sendMessage(session.getSender(),"String_Node_Str");
  session.setRollbackUndo(null);
  session.setRollbackResults(null);
}
Program: 43109
Project: 43109
Buggy source:
public boolean execute(){
  Util.sendMessage(sender,"String_Node_Str");
  new Rollback(RollbackType.GLOBAL,session);
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  if (!session.doingRollback() || session.getLocalRollbackUndo().size() == 0) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  Util.sendMessage(sender,"String_Node_Str");
  new Rollback(RollbackType.GLOBAL,session);
  session.setLocalRollbackUndo(new ArrayList<Block>());
  return true;
}
Program: 43110
Project: 43110
Buggy source:
public boolean execute(){
  session.setDoingRollback(false);
  for (  Block block : session.getLocalRollbackUndo())   player.sendBlockChange(block.getLocation(),block.getType(),block.getData());
  Util.sendMessage(sender,"String_Node_Str");
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  if (!session.doingRollback() || session.getLocalRollbackUndo().size() == 0) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  session.setDoingRollback(false);
  for (  Block block : session.getLocalRollbackUndo())   player.sendBlockChange(block.getLocation(),block.getType(),block.getData());
  session.setLocalRollbackUndo(new ArrayList<Block>());
  Util.sendMessage(sender,"String_Node_Str");
  return true;
}
Program: 43111
Project: 43111
Buggy source:
public static String createChangeString(List<HashMap<String,Integer>> ops){
  String changeString="String_Node_Str";
  List<String> add=new ArrayList<String>();
  for (  Entry<String,Integer> item : ops.get(0).entrySet())   add.add(item.getValue() + "String_Node_Str" + BlockUtil.getBlockStringName(item.getKey()));
  List<String> sub=new ArrayList<String>();
  for (  Entry<String,Integer> item : ops.get(1).entrySet())   sub.add(item.getValue() + "String_Node_Str" + BlockUtil.getBlockStringName(item.getKey()));
  if (add.size() > 0)   changeString+="String_Node_Str" + Util.join(add,"String_Node_Str") + "String_Node_Str";
  if (sub.size() > 0)   changeString+="String_Node_Str" + Util.join(sub,"String_Node_Str") + "String_Node_Str";
  return changeString;
}

Fixed version (ground truth):
/** 
 * Creates a readable string representing the changes of a difference string
 * @param ops additions and subtractions as supplied by interpretDifferenceString
 * @return
 */
public static String createChangeString(List<HashMap<String,Integer>> ops){
  String changeString="String_Node_Str";
  List<String> add=new ArrayList<String>();
  for (  Entry<String,Integer> item : ops.get(0).entrySet())   add.add(item.getValue() + "String_Node_Str" + BlockUtil.getBlockStringName(item.getKey()));
  List<String> sub=new ArrayList<String>();
  for (  Entry<String,Integer> item : ops.get(1).entrySet())   sub.add(item.getValue() + "String_Node_Str" + BlockUtil.getBlockStringName(item.getKey()));
  if (add.size() > 0)   changeString+="String_Node_Str" + Util.join(add,"String_Node_Str") + "String_Node_Str";
  if (sub.size() > 0)   changeString+="String_Node_Str" + Util.join(sub,"String_Node_Str") + "String_Node_Str";
  return changeString;
}
Program: 43112
Project: 43112
Buggy source:
/** 
 * Takes an inventory difference string and forms two HashMaps containing the compressed inventory forms of the additions and subtractions
 * @param diff The difference string to be processed
 * @return a List of two HashMaps containing the additions and subtractions. First list element is adds, second is subs.
 */
public static List<HashMap<String,Integer>> interpretDifferenceString(String diff){
  List<HashMap<String,Integer>> ops=new ArrayList<HashMap<String,Integer>>();
  for (  String changes : diff.split("String_Node_Str")) {
    HashMap<String,Integer> op=new HashMap<String,Integer>();
    for (    String change : changes.split("String_Node_Str")) {
      if (change.length() == 0)       continue;
      String[] item=change.split("String_Node_Str");
      op.put(item[0],Integer.parseInt(item[1]));
    }
    ops.add(op);
  }
  if (ops.size() == 1)   ops.add(new HashMap<String,Integer>());
  return ops;
}

Fixed version (ground truth):
/** 
 * Takes an inventory difference string and forms two HashMaps containing the compressed inventory forms of the additions and subtractions
 * @param diff The difference string to be processed
 * @return a List of two HashMaps containing the additions and subtractions. First list element is adds, second is subs.
 */
public static List<HashMap<String,Integer>> interpretDifferenceString(String diff){
  List<HashMap<String,Integer>> ops=new ArrayList<HashMap<String,Integer>>();
  for (  String changes : diff.split("String_Node_Str")) {
    HashMap<String,Integer> op=new HashMap<String,Integer>();
    for (    String change : changes.split("String_Node_Str")) {
      if (change.length() == 0)       continue;
      String[] item=change.split("String_Node_Str");
      op.put(item[0],Integer.parseInt(item[1]));
    }
    ops.add(op);
  }
  return ops;
}
Program: 43113
Project: 43113
Buggy source:
/** 
 * Checks if HawkEye needs to update config files from existing DataLog installation
 * @param pm PluginManager
 */
private void datalogCheck(PluginManager pm){
  Plugin dl=pm.getPlugin("String_Node_Str");
  if (dl != null) {
    Util.warning("String_Node_Str");
    Config.importOldConfig(dl.getConfiguration());
    pm.disablePlugin(dl);
    File dataLog=new File("String_Node_Str" + File.separator + "String_Node_Str");
    dataLog.deleteOnExit();
    File dataLogFolder=new File("String_Node_Str" + File.separator + "String_Node_Str"+ File.separator);
    dataLogFolder.deleteOnExit();
    config=new Config(this);
    Util.info("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Checks if HawkEye needs to update config files from existing DataLog installation
 * @param pm PluginManager
 */
private void datalogCheck(PluginManager pm){
  Plugin dl=pm.getPlugin("String_Node_Str");
  if (dl != null) {
    Util.warning("String_Node_Str");
    Util.info("String_Node_Str");
    Config.importOldConfig(dl.getConfiguration());
    config=new Config(this);
    pm.disablePlugin(dl);
  }
}
Program: 43114
Project: 43114
Buggy source:
public RollbackCallback(PlayerSession session){
  this.session=session;
}

Fixed version (ground truth):
public RollbackCallback(PlayerSession session){
  this.session=session;
  sender=session.getSender();
  Util.sendMessage(sender,"String_Node_Str");
}
Program: 43115
Project: 43115
Buggy source:
public SearchCallback(PlayerSession session){
  this.session=session;
}

Fixed version (ground truth):
public SearchCallback(PlayerSession session){
  this.session=session;
  sender=session.getSender();
  Util.sendMessage(sender,"String_Node_Str");
}
Program: 43116
Project: 43116
Buggy source:
public void error(SearchError error,String message){
  Util.sendMessage(session.getSender(),message);
}

Fixed version (ground truth):
public void error(SearchError error,String message){
  Util.sendMessage(sender,message);
}
Program: 43117
Project: 43117
Buggy source:
public boolean execute(){
  SearchParser parser=null;
  try {
    if (args.size() == 0 || !Util.isInteger(args.get(0)))     throw new IllegalArgumentException("String_Node_Str");
    int integer=Integer.parseInt(args.get(0));
    if ((integer > Config.MaxRadius && Config.MaxRadius > 0) || integer < 0)     throw new IllegalArgumentException("String_Node_Str");
    parser=new SearchParser(player,integer);
    for (    DataType type : DataType.values())     if (type.canHere())     parser.actions.add(type);
    if (args.size() > 1)     parser.players=args.get(1).split("String_Node_Str");
    for (    DataType type : DataType.values())     if (type.canHere())     parser.actions.add(type);
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  new SearchQuery(new SearchCallback(),parser,SearchDir.DESC);
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  SearchParser parser=null;
  try {
    if (args.size() == 0 || !Util.isInteger(args.get(0)))     throw new IllegalArgumentException("String_Node_Str");
    int integer=Integer.parseInt(args.get(0));
    if ((integer > Config.MaxRadius && Config.MaxRadius > 0) || integer < 0)     throw new IllegalArgumentException("String_Node_Str");
    parser=new SearchParser(player,integer);
    for (    DataType type : DataType.values())     if (type.canHere())     parser.actions.add(type);
    if (args.size() > 1)     parser.players=args.get(1).split("String_Node_Str");
    for (    DataType type : DataType.values())     if (type.canHere())     parser.actions.add(type);
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  new SearchQuery(new SearchCallback(session),parser,SearchDir.DESC);
  return true;
}
Program: 43118
Project: 43118
Buggy source:
public boolean execute(){
  if (session.getRollbackResults() != null && session.getRollbackResults().size() > 0) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  SearchParser parser=null;
  try {
    parser=new SearchParser(player,args);
    parser.loc=null;
    if (parser.actions.size() > 0) {
      for (      DataType type : parser.actions)       if (!type.canRollback())       throw new IllegalArgumentException("String_Node_Str" + type.getConfigName());
    }
 else {
      for (      DataType type : DataType.values())       if (type.canRollback())       parser.actions.add(type);
    }
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  new SearchQuery(new RollbackCallback(),parser,SearchDir.DESC);
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  if (session.getRollbackResults() != null && session.getRollbackResults().size() > 0) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  SearchParser parser=null;
  try {
    parser=new SearchParser(player,args);
    parser.loc=null;
    if (parser.actions.size() > 0) {
      for (      DataType type : parser.actions)       if (!type.canRollback())       throw new IllegalArgumentException("String_Node_Str" + type.getConfigName());
    }
 else {
      for (      DataType type : DataType.values())       if (type.canRollback())       parser.actions.add(type);
    }
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  new SearchQuery(new RollbackCallback(session),parser,SearchDir.DESC);
  return true;
}
Program: 43119
Project: 43119
Buggy source:
public boolean execute(){
  SearchParser parser=null;
  try {
    parser=new SearchParser(player,args);
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  new SearchQuery(new SearchCallback(),parser,SearchDir.DESC);
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  SearchParser parser=null;
  try {
    parser=new SearchParser(player,args);
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  new SearchQuery(new SearchCallback(session),parser,SearchDir.DESC);
  return true;
}
Program: 43120
Project: 43120
Buggy source:
public boolean execute(){
  if (session.getRollbackResults() != null && session.getRollbackResults().size() == 0) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  if (plugin.worldEdit == null) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  Region region=null;
  try {
    LocalPlayer lp=new BukkitPlayer(plugin.worldEdit,plugin.worldEdit.getWorldEdit().getServer(),player);
    region=plugin.worldEdit.getWorldEdit().getSession(lp).getRegionSelector().getRegion();
  }
 catch (  IncompleteRegionException e) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  SearchParser parser=null;
  try {
    parser=new SearchParser(player,args);
    if (parser.actions.size() > 0) {
      for (      DataType type : parser.actions)       if (!type.canRollback())       throw new IllegalArgumentException("String_Node_Str" + type.getConfigName());
    }
 else {
      for (      DataType type : DataType.values())       if (type.canRollback())       parser.actions.add(type);
    }
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  parser.minLoc=new Vector(region.getMinimumPoint().getX(),region.getMinimumPoint().getY(),region.getMinimumPoint().getZ());
  parser.maxLoc=new Vector(region.getMaximumPoint().getX(),region.getMaximumPoint().getY(),region.getMaximumPoint().getZ());
  new SearchQuery(new RollbackCallback(),parser,SearchDir.DESC);
  return true;
}

Fixed version (ground truth):
public boolean execute(){
  if (session.getRollbackResults() != null && session.getRollbackResults().size() == 0) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  if (plugin.worldEdit == null) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  Region region=null;
  try {
    LocalPlayer lp=new BukkitPlayer(plugin.worldEdit,plugin.worldEdit.getWorldEdit().getServer(),player);
    region=plugin.worldEdit.getWorldEdit().getSession(lp).getRegionSelector().getRegion();
  }
 catch (  IncompleteRegionException e) {
    Util.sendMessage(sender,"String_Node_Str");
    return true;
  }
  SearchParser parser=null;
  try {
    parser=new SearchParser(player,args);
    if (parser.actions.size() > 0) {
      for (      DataType type : parser.actions)       if (!type.canRollback())       throw new IllegalArgumentException("String_Node_Str" + type.getConfigName());
    }
 else {
      for (      DataType type : DataType.values())       if (type.canRollback())       parser.actions.add(type);
    }
  }
 catch (  IllegalArgumentException e) {
    Util.sendMessage(sender,"String_Node_Str" + e.getMessage());
    return true;
  }
  parser.minLoc=new Vector(region.getMinimumPoint().getX(),region.getMinimumPoint().getY(),region.getMinimumPoint().getZ());
  parser.maxLoc=new Vector(region.getMaximumPoint().getX(),region.getMaximumPoint().getY(),region.getMaximumPoint().getZ());
  new SearchQuery(new RollbackCallback(session),parser,SearchDir.DESC);
  return true;
}
Program: 43121
Project: 43121
Buggy source:
/** 
 * Performs a HawkEye tool search at the specified location
 * @param player
 * @param loc
 */
public static void toolSearch(Player player,Location loc){
  SearchParser parser=new SearchParser(player);
  for (  DataType type : DataType.values())   if (type.canHere())   parser.actions.add(type);
  loc=Util.getSimpleLocation(loc);
  parser.loc=loc.toVector();
  parser.worlds=new String[]{loc.getWorld().getName()};
  Thread thread=new SearchQuery(new SearchCallback(),parser,SearchDir.DESC);
  thread.start();
}

Fixed version (ground truth):
/** 
 * Performs a HawkEye tool search at the specified location
 * @param player
 * @param loc
 */
public static void toolSearch(Player player,Location loc){
  SearchParser parser=new SearchParser(player);
  for (  DataType type : DataType.values())   if (type.canHere())   parser.actions.add(type);
  loc=Util.getSimpleLocation(loc);
  parser.loc=loc.toVector();
  parser.worlds=new String[]{loc.getWorld().getName()};
  new SearchQuery(new SearchCallback(HawkEye.getSession(player)),parser,SearchDir.DESC);
}
Program: 43122
Project: 43122
Buggy source:
private void setupDatabase(){
  try {
    File props=new File("String_Node_Str");
    if (!props.exists())     props.createNewFile();
  }
 catch (  IOException e) {
    Util.info("String_Node_Str");
  }
  if (getDatabase().createSqlQuery("String_Node_Str").findUnique() == null) {
    Util.info("String_Node_Str");
    installDDL();
  }
  if (getDatabase().createSqlQuery("String_Node_Str").findUnique() == null) {
    Util.info("String_Node_Str");
    getDatabase().createSqlUpdate("String_Node_Str").execute();
    getDatabase().createSqlUpdate("String_Node_Str" + getDescription().getName() + "String_Node_Str").execute();
    getDatabase().createSqlUpdate("String_Node_Str").execute();
    Util.info("String_Node_Str");
  }
}

Fixed version (ground truth):
private void setupDatabase(){
  try {
    File props=new File("String_Node_Str");
    if (!props.exists())     props.createNewFile();
  }
 catch (  IOException e) {
    Util.info("String_Node_Str");
  }
  if (getDatabase().createSqlQuery("String_Node_Str").findList() == null) {
    Util.info("String_Node_Str");
    installDDL();
  }
  if (getDatabase().createSqlQuery("String_Node_Str").findUnique() == null) {
    Util.info("String_Node_Str");
    getDatabase().createSqlUpdate("String_Node_Str").execute();
    getDatabase().createSqlUpdate("String_Node_Str" + getDescription().getName() + "String_Node_Str").execute();
    getDatabase().createSqlUpdate("String_Node_Str").execute();
    Util.info("String_Node_Str");
  }
}
Program: 43123
Project: 43123
Buggy source:
public SearchQuery(CommandSender sender,String dateFrom,String dateTo,String[] players,Integer[] actions,Vector loc,Integer radius,String[] worlds,String[] filters){
  this.sender=sender;
  this.players=players;
  this.dateFrom=dateFrom;
  this.dateTo=dateTo;
  this.actions=actions;
  this.loc=loc;
  this.radius=radius;
  this.worlds=worlds;
  this.filters=filters;
}

Fixed version (ground truth):
public SearchQuery(CommandSender sender,String dateFrom,String dateTo,String[] players,List<Integer> actions,Vector loc,Integer radius,String[] worlds,String[] filters){
  this.sender=sender;
  this.players=players;
  this.dateFrom=dateFrom;
  this.dateTo=dateTo;
  this.actions=actions;
  this.loc=loc;
  this.radius=radius;
  this.worlds=worlds;
  this.filters=filters;
}
Program: 43126
Project: 43126
Buggy source:
/** 
 * Generates the corrected index array for the supplied String.
 * @param string
 */
public StringIndexFixer(String string){
  this.indices=new int[string.codePointCount(0,string.length()) + 1];
  for (int i=0, count=0, nextCount; i < string.length(); i++) {
    nextCount=string.codePointCount(0,i + 1);
    if (nextCount != count) {
      indices[count]=i;
      count=nextCount;
    }
  }
}

Fixed version (ground truth):
/** 
 * Generates the corrected index array for the supplied String.
 * @param string
 */
public StringIndexFixer(String string){
  this.indices=new int[string.codePointCount(0,string.length()) + 1];
  for (int i=0, count=0, nextCount; i < string.length(); i++) {
    nextCount=string.codePointCount(0,i + 1);
    if (nextCount != count) {
      indices[count]=i;
      count=nextCount;
    }
  }
  indices[indices.length - 1]=string.length();
}
Program: 43127
Project: 43127
Buggy source:
/** 
 * Generates the corrected index array for the supplied String.
 * @param string
 */
public StringIndexFixer(String string){
  this.indices=new int[string.codePointCount(0,string.length()) + 1];
  for (int i=0, count=0, nextCount; i < string.length(); i++) {
    nextCount=string.codePointCount(0,i + 1);
    if (nextCount != count) {
      indices[count]=i;
      count=nextCount;
    }
  }
}

Fixed version (ground truth):
/** 
 * Generates the corrected index array for the supplied String.
 * @param string
 */
public StringIndexFixer(String string){
  this.indices=new int[string.codePointCount(0,string.length())];
  for (int i=0, count=0, nextCount; i < string.length(); i++) {
    nextCount=string.codePointCount(0,i + 1);
    if (nextCount != count) {
      indices[count]=i;
      count=nextCount;
    }
  }
}
Program: 43128
Project: 43128
Buggy source:
/** 
 * Compute the effective size of a message, given that Twitter treats things that smell like a URL as 22 characters. This also checks for DM microformat, e.g. "d winterstein Hello", where the d user part isn't counted.
 * @param statusText The status to check 
 * @return The effective message length in characters
 */
public static int countCharacters(String statusText){
  int shortLength=statusText.length();
  Matcher m=Regex.VALID_URL.matcher(statusText);
  while (m.find()) {
    shortLength+=LINK_LENGTH - m.group().length();
    if (m.group().startsWith("String_Node_Str")) {
      shortLength++;
    }
  }
  Matcher dmm=InternalUtils.DM.matcher(statusText);
  if (dmm.find()) {
    shortLength-=dmm.end();
  }
  return shortLength;
}

Fixed version (ground truth):
/** 
 * Compute the effective size of a message, given that Twitter treats things that smell like a URL as 22 characters. This also checks for DM microformat, e.g. "d winterstein Hello", where the d user part isn't counted.
 * @param statusText The status to check 
 * @return The effective message length in characters
 */
public static int countCharacters(String statusText){
  int shortLength=statusText.length();
  Matcher m=Regex.VALID_URL.matcher(statusText);
  while (m.find()) {
    String grp=m.group();
    shortLength+=LINK_LENGTH - m.group().length();
    if (m.group().startsWith("String_Node_Str")) {
      shortLength++;
    }
  }
  Matcher dmm=InternalUtils.DM.matcher(statusText);
  if (dmm.find()) {
    shortLength-=dmm.end();
  }
  return shortLength;
}
Program: 43129
Project: 43129
Buggy source:
/** 
 * Replace the default Twitter urls with the LinkedIn urls.
 */
public void setLinkedInProvider(){
  setProvider(LINKEDIN_PROVIDER);
}

Fixed version (ground truth):
/** 
 * Replace the default Twitter urls with the LinkedIn urls.
 */
public void setLinkedInProvider(){
  setProvider(LINKEDIN_PROVIDER());
}
Program: 43130
Project: 43130
Buggy source:
public void setFoursquareProvider(){
  setProvider(FOURSQUARE_PROVIDER);
}

Fixed version (ground truth):
public void setFoursquareProvider(){
  setProvider(FOURSQUARE_PROVIDER());
}
Program: 43131
Project: 43131
Buggy source:
/** 
 * @return the access token and access token secret - if this client wasconstructed with an access token, or has successfully authenticated and got one. null otherwise.
 */
public String[] getAccessToken(){
  if (accessToken == null)   return null;
  return new String[]{accessToken,accessTokenSecret};
}

Fixed version (ground truth):
/** 
 * @return the access token and access token secret - if this client wasconstructed with an access token, or has successfully authenticated and got one. null otherwise. Also returns the expiry time, if we've got one (null if not). See setExpiryKey for how to locate these.
 */
public String[] getAccessToken(){
  if (accessToken == null)   return null;
  return new String[]{accessToken,accessTokenSecret};
}
Program: 43132
Project: 43132
Buggy source:
/** 
 * Search results use a slightly different protocol! In particular w.r.t. user ids and info.
 * @param searchResults
 * @return search results as Status objects - but with dummy users! Thedummy users have a screenname and a profile image url, but no other information. This reflects the current behaviour of the Twitter API.
 */
static List<Status> getStatusesFromSearch(Twitter tw,String json){
  try {
    JSONObject searchResults=new JSONObject(json);
    List<Status> users=new ArrayList<Status>();
    JSONArray arr=searchResults.getJSONArray("String_Node_Str");
    for (int i=0; i < arr.length(); i++) {
      JSONObject obj=arr.getJSONObject(i);
      String userScreenName=obj.getString("String_Node_Str");
      String profileImgUrl=obj.getString("String_Node_Str");
      User user=new User(userScreenName);
      user.profileImageUrl=InternalUtils.URI(profileImgUrl);
      Status s=new Status(obj,user);
      users.add(s);
    }
    return users;
  }
 catch (  JSONException e) {
    throw new TwitterException.Parsing(json,e);
  }
}

Fixed version (ground truth):
/** 
 * Search results use a slightly different protocol! In particular w.r.t. user ids and info.
 * @param searchResults
 * @return search results as Status objects - but with dummy users! Thedummy users have a screenname and a profile image url, but no other information. This reflects the current behaviour of the Twitter API.
 */
static List<Status> getStatusesFromSearch(Twitter tw,String json){
  try {
    JSONObject searchResults=new JSONObject(json);
    List<Status> users=new ArrayList<Status>();
    JSONArray arr=searchResults.getJSONArray("String_Node_Str");
    for (int i=0; i < arr.length(); i++) {
      JSONObject obj=arr.getJSONObject(i);
      Status s=new Status(obj,null);
      users.add(s);
    }
    return users;
  }
 catch (  JSONException e) {
    throw new TwitterException.Parsing(json,e);
  }
}
Program: 43133
Project: 43133
Buggy source:
/** 
 * @param searchTerm
 * @param rpp
 * @return
 */
private Map<String,String> getSearchParams(String searchTerm,int rpp){
  Map<String,String> vars=InternalUtils.asMap("String_Node_Str",Integer.toString(rpp),"String_Node_Str",searchTerm);
  if (sinceId != null) {
    vars.put("String_Node_Str",sinceId.toString());
  }
  if (untilId != null) {
    vars.put("String_Node_Str",untilId.toString());
  }
  if (untilDate != null) {
    vars.put("String_Node_Str",InternalUtils.df.format(untilDate));
  }
  if (lang != null) {
    vars.put("String_Node_Str",lang);
  }
  if (geocode != null) {
    vars.put("String_Node_Str",geocode);
  }
  if (resultType != null) {
    vars.put("String_Node_Str",resultType);
  }
  addStandardishParameters(vars);
  return vars;
}

Fixed version (ground truth):
/** 
 * @param searchTerm
 * @param rpp
 * @return
 */
private Map<String,String> getSearchParams(String searchTerm,Integer rpp){
  Map vars=InternalUtils.asMap("String_Node_Str",rpp,"String_Node_Str",searchTerm);
  if (sinceId != null) {
    vars.put("String_Node_Str",sinceId.toString());
  }
  if (untilId != null) {
    vars.put("String_Node_Str",untilId.toString());
  }
  if (untilDate != null) {
    vars.put("String_Node_Str",InternalUtils.df.format(untilDate));
  }
  if (lang != null) {
    vars.put("String_Node_Str",lang);
  }
  if (geocode != null) {
    vars.put("String_Node_Str",geocode);
  }
  if (resultType != null) {
    vars.put("String_Node_Str",resultType);
  }
  addStandardishParameters(vars);
  return vars;
}