Program: 51417
Project: 51417
Buggy source:
/** 
 * Retrieves the   {@link ChestOwner} with the given name. In the future, thismethod might need to contact Mojang's auth service to look up the UUID for the given name, so it may take some time to be completed. The callbacks are always called on the main thread. At the moment the callback is called immediately. <p> The name may be the name of a player, or it may be {@link #PUBLIC_CHEST_NAME} or {@link #DEFAULT_CHEST_NAME}.
 * @param name Either a player name,  {@link #PUBLIC_CHEST_NAME} or{@link #DEFAULT_CHEST_NAME}.
 * @param onSuccess Will be called when the  {@link ChestOwner} has been found.
 * @param onFailure Will be called when the  {@link ChestOwner} was not found,which usually happens because no player exists with that name.
 */
public void fromInput(final String name,final Consumer<ChestOwner> onSuccess,final Consumer<InvalidOwnerException> onFailure){
  if (name.equalsIgnoreCase(publicChest().getSaveFileName())) {
    onSuccess.consume(publicChest());
    return;
  }
  if (name.equalsIgnoreCase(defaultChest().getSaveFileName())) {
    onSuccess.consume(defaultChest());
    return;
  }
  if (!plugin.useUuidsForSaving()) {
    onSuccess.consume(new NamedChestOwner(name));
    return;
  }
  Bukkit.getScheduler().runTaskAsynchronously(plugin.getPlugin(),new Runnable(){
    @Override public void run(){
      try {
        final ChestOwner chestOwner=uuidCache.get(name.toLowerCase());
        Bukkit.getScheduler().runTask(plugin.getPlugin(),new Runnable(){
          @Override public void run(){
            onSuccess.consume(chestOwner);
          }
        }
);
      }
 catch (      final ExecutionException e) {
        Bukkit.getScheduler().runTask(plugin.getPlugin(),new Runnable(){
          @Override public void run(){
            if (e.getCause() instanceof InvalidOwnerException) {
              onFailure.consume((InvalidOwnerException)e.getCause());
            }
 else {
              plugin.severe("String_Node_Str" + name,e);
              onFailure.consume(new InvalidOwnerException(name));
            }
          }
        }
);
      }
    }
  }
);
}

Fixed version (ground truth):
/** 
 * Retrieves the   {@link ChestOwner} with the given name. In the future, thismethod might need to contact Mojang's auth service to look up the UUID for the given name, so it may take some time to be completed. The callbacks are always called on the main thread. At the moment the callback is called immediately. <p> The name may be the name of a player, or it may be {@code publicChest().getSaveFileName()} or{@code defaultChest().getSaveFileName()}.
 * @param name Either a player name or the name of a special chest.
 * @param onSuccess Will be called when the  {@link ChestOwner} has been found.
 * @param onFailure Will be called when the  {@link ChestOwner} was not found,which usually happens because no player exists with that name.
 */
public void fromInput(final String name,final Consumer<ChestOwner> onSuccess,final Consumer<InvalidOwnerException> onFailure){
  if (name.equalsIgnoreCase(publicChest().getSaveFileName())) {
    onSuccess.consume(publicChest());
    return;
  }
  if (name.equalsIgnoreCase(defaultChest().getSaveFileName())) {
    onSuccess.consume(defaultChest());
    return;
  }
  if (!plugin.useUuidsForSaving()) {
    onSuccess.consume(new NamedChestOwner(name));
    return;
  }
  Bukkit.getScheduler().runTaskAsynchronously(plugin.getPlugin(),new Runnable(){
    @Override public void run(){
      try {
        final ChestOwner chestOwner=uuidCache.get(name.toLowerCase());
        Bukkit.getScheduler().runTask(plugin.getPlugin(),new Runnable(){
          @Override public void run(){
            onSuccess.consume(chestOwner);
          }
        }
);
      }
 catch (      final ExecutionException e) {
        Bukkit.getScheduler().runTask(plugin.getPlugin(),new Runnable(){
          @Override public void run(){
            if (e.getCause() instanceof InvalidOwnerException) {
              onFailure.consume((InvalidOwnerException)e.getCause());
            }
 else {
              plugin.severe("String_Node_Str" + name,e);
              onFailure.consume(new InvalidOwnerException(name));
            }
          }
        }
);
      }
    }
  }
);
}