Program: 5439
Project: 5439
Buggy source:
@Override public void addHome(String player,String name,Location location){
  Connection connection=null;
  PreparedStatement statement=null;
  try {
    connection=DriverManager.getConnection(url,user,password);
    if (!connection.isValid(100)) {
      throw new SQLException();
    }
    statement=connection.prepareStatement("String_Node_Str");
    statement.setString(1,player.toLowerCase());
    statement.setString(2,name.toLowerCase());
    statement.setString(3,location.getWorld().getName());
    statement.setDouble(4,location.getX());
    statement.setDouble(5,location.getY());
    statement.setDouble(6,location.getZ());
    statement.setFloat(7,location.getPitch());
    statement.setFloat(8,location.getYaw());
    statement.execute();
  }
 catch (  SQLException e) {
    Messaging.logSevere("String_Node_Str",this.plugin);
    e.printStackTrace();
  }
 finally {
    if (statement != null) {
      try {
        statement.close();
      }
 catch (      SQLException ex) {
      }
    }
    if (connection != null) {
      try {
        connection.close();
      }
 catch (      SQLException ex) {
      }
    }
  }
}

Fixed version (ground truth):
@Override public void addHome(String player,String name,Location location){
  Connection connection=null;
  PreparedStatement statement=null;
  ResultSet resultSet=null;
  boolean exists=false;
  try {
    connection=DriverManager.getConnection(url,user,password);
    if (!connection.isValid(100)) {
      throw new SQLException();
    }
    statement=connection.prepareStatement("String_Node_Str");
    statement.setString(1,player.toLowerCase());
    statement.setString(2,name.toLowerCase());
    resultSet=statement.executeQuery();
    if (resultSet.first()) {
      exists=resultSet.getInt(1) > 0;
    }
    if (exists) {
      statement=connection.prepareStatement("String_Node_Str");
      statement.setString(1,location.getWorld().getName());
      statement.setDouble(2,location.getX());
      statement.setDouble(3,location.getY());
      statement.setDouble(4,location.getZ());
      statement.setFloat(5,location.getPitch());
      statement.setFloat(6,location.getYaw());
      statement.setString(7,player.toLowerCase());
      statement.setString(8,name.toLowerCase());
      statement.execute();
    }
 else {
      statement=connection.prepareStatement("String_Node_Str");
      statement.setString(1,player.toLowerCase());
      statement.setString(2,name.toLowerCase());
      statement.setString(3,location.getWorld().getName());
      statement.setDouble(4,location.getX());
      statement.setDouble(5,location.getY());
      statement.setDouble(6,location.getZ());
      statement.setFloat(7,location.getPitch());
      statement.setFloat(8,location.getYaw());
      statement.execute();
    }
  }
 catch (  SQLException e) {
    Messaging.logSevere("String_Node_Str",this.plugin);
    e.printStackTrace();
  }
 finally {
    if (statement != null) {
      try {
        statement.close();
      }
 catch (      SQLException ex) {
      }
    }
    if (connection != null) {
      try {
        connection.close();
      }
 catch (      SQLException ex) {
      }
    }
  }
}