Program: 94004
Project: 94004
Buggy source:
public static String hash(String action,String player,String password,String thesalt) throws SQLException {
  if (action.equalsIgnoreCase("String_Node_Str")) {
    try {
      EBean eBeanClass=EBean.checkPlayer(player);
      String StoredSalt=eBeanClass.getSalt();
      return passwordHash(password,StoredSalt);
    }
 catch (    NoSuchAlgorithmException e) {
      Util.logging.StackTrace(e.getStackTrace(),Thread.currentThread().getStackTrace()[1].getMethodName(),Thread.currentThread().getStackTrace()[1].getLineNumber(),Thread.currentThread().getStackTrace()[1].getClassName(),Thread.currentThread().getStackTrace()[1].getFileName());
    }
catch (    UnsupportedEncodingException e) {
      Util.logging.StackTrace(e.getStackTrace(),Thread.currentThread().getStackTrace()[1].getMethodName(),Thread.currentThread().getStackTrace()[1].getLineNumber(),Thread.currentThread().getStackTrace()[1].getClassName(),Thread.currentThread().getStackTrace()[1].getFileName());
    }
  }
 else   if (action.equalsIgnoreCase("String_Node_Str")) {
    try {
      return passwordHash(password,thesalt);
    }
 catch (    NoSuchAlgorithmException e) {
      Util.logging.StackTrace(e.getStackTrace(),Thread.currentThread().getStackTrace()[1].getMethodName(),Thread.currentThread().getStackTrace()[1].getLineNumber(),Thread.currentThread().getStackTrace()[1].getClassName(),Thread.currentThread().getStackTrace()[1].getFileName());
    }
catch (    UnsupportedEncodingException e) {
      Util.logging.StackTrace(e.getStackTrace(),Thread.currentThread().getStackTrace()[1].getMethodName(),Thread.currentThread().getStackTrace()[1].getLineNumber(),Thread.currentThread().getStackTrace()[1].getClassName(),Thread.currentThread().getStackTrace()[1].getFileName());
    }
  }
  return "String_Node_Str";
}

Fixed version (ground truth):
public static String hash(String action,String player,String password,String thesalt) throws SQLException {
  if (action.equalsIgnoreCase("String_Node_Str")) {
    try {
      EBean eBeanClass=EBean.checkPlayer(player,true);
      String StoredSalt=eBeanClass.getSalt();
      return passwordHash(password,StoredSalt);
    }
 catch (    NoSuchAlgorithmException e) {
      Util.logging.StackTrace(e.getStackTrace(),Thread.currentThread().getStackTrace()[1].getMethodName(),Thread.currentThread().getStackTrace()[1].getLineNumber(),Thread.currentThread().getStackTrace()[1].getClassName(),Thread.currentThread().getStackTrace()[1].getFileName());
    }
catch (    UnsupportedEncodingException e) {
      Util.logging.StackTrace(e.getStackTrace(),Thread.currentThread().getStackTrace()[1].getMethodName(),Thread.currentThread().getStackTrace()[1].getLineNumber(),Thread.currentThread().getStackTrace()[1].getClassName(),Thread.currentThread().getStackTrace()[1].getFileName());
    }
  }
 else   if (action.equalsIgnoreCase("String_Node_Str")) {
    try {
      return passwordHash(password,thesalt);
    }
 catch (    NoSuchAlgorithmException e) {
      Util.logging.StackTrace(e.getStackTrace(),Thread.currentThread().getStackTrace()[1].getMethodName(),Thread.currentThread().getStackTrace()[1].getLineNumber(),Thread.currentThread().getStackTrace()[1].getClassName(),Thread.currentThread().getStackTrace()[1].getFileName());
    }
catch (    UnsupportedEncodingException e) {
      Util.logging.StackTrace(e.getStackTrace(),Thread.currentThread().getStackTrace()[1].getMethodName(),Thread.currentThread().getStackTrace()[1].getLineNumber(),Thread.currentThread().getStackTrace()[1].getClassName(),Thread.currentThread().getStackTrace()[1].getFileName());
    }
  }
  return "String_Node_Str";
}