Program: 32938
Project: 32938
Buggy source:
public InputStream getPlayerSkinStream(Boolean isCloak,String playerName){
  if (skinURLs == null || cloakURLs == null || skinURLs.length <= 0 || cloakURLs.length <= 0)   refreshSkinURL();
  InputStream S=null;
  for (  String l : isCloak ? cloakURLs : skinURLs) {
    if (l == null || l.equalsIgnoreCase("String_Node_Str"))     continue;
    String loc=str_replace("String_Node_Str",playerName,l);
    logger.log(Level.INFO,"String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ loc);
    S=getStream(loc,true);
    if (S == null) {
      logger.log(Level.INFO,"String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ loc);
    }
 else {
      logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ loc);
      break;
    }
  }
  if (S == null) {
    File temp=null;
    if (isCloak)     temp=new File(CLOAK_DIR,playerName + "String_Node_Str");
 else     temp=new File(SKIN_DIR,playerName + "String_Node_Str");
    try {
      if (temp.exists() && temp.length() > 1) {
        logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
        InputStream in=new FileInputStream(temp);
        BufferedInputStream bis=new BufferedInputStream(in);
        if (bis.available() <= 0) {
          logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
        }
 else {
          logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
          return bis;
        }
      }
 else {
        logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
      }
    }
 catch (    Exception e) {
      logger.log(Level.WARNING,e.getMessage());
    }
  }
 else {
    String user=Minecraft.getMinecraft().getSession().getUsername();
    if (user.equalsIgnoreCase(playerName)) {
      File temp=null;
      if (isCloak)       temp=new File(CLOAK_DIR,playerName + "String_Node_Str");
 else       temp=new File(SKIN_DIR,playerName + "String_Node_Str");
      logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
      FileOutputStream fs=null;
      int times=0;
      try {
        if (!temp.getParentFile().exists())         temp.getParentFile().mkdir();
 else         if (temp.exists()) {
          temp.delete();
        }
        fs=new FileOutputStream(temp);
        int byteRead=0;
        byte[] buffer=new byte[1024];
        while ((byteRead=S.read(buffer)) != -1) {
          times++;
          fs.write(buffer,0,byteRead);
          if (S.available() <= 0) {
            Thread.sleep(100);
            if (S.available() <= 0)             break;
          }
        }
        if (temp.length() > 1) {
          logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
        }
 else {
          temp.delete();
          logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
        }
      }
 catch (      Exception e) {
        e.printStackTrace();
        logger.info(times + "String_Node_Str");
        logger.warning(e);
      }
 finally {
        try {
          if (fs != null)           fs.close();
          S.reset();
          logger.info("String_Node_Str" + S.available());
        }
 catch (        IOException e) {
          logger.warning(e);
        }
      }
    }
    return S;
  }
  logger.log(Level.INFO,"String_Node_Str");
  return getStream(str_replace("String_Node_Str",playerName,isCloak ? DefaultCloakURL : DefaultSkinURL),true);
}

Fixed version (ground truth):
public InputStream getPlayerSkinStream(Boolean isCloak,String playerName){
  if (skinURLs == null || cloakURLs == null || skinURLs.length <= 0 || cloakURLs.length <= 0)   refreshSkinURL();
  InputStream S=null;
  File temp=null;
  if (isCloak)   temp=new File(CLOAK_DIR,playerName + "String_Node_Str");
 else   temp=new File(SKIN_DIR,playerName + "String_Node_Str");
  for (  String l : isCloak ? cloakURLs : skinURLs) {
    if (l == null || l.equalsIgnoreCase("String_Node_Str"))     continue;
    String loc=str_replace("String_Node_Str",playerName,l);
    logger.log(Level.INFO,"String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ loc);
    long last=0;
    if (temp.exists() && temp.length() > 0) {
      last=temp.lastModified();
    }
    S=getStream(loc,true,last);
    if (S == null) {
      logger.log(Level.INFO,"String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ loc);
    }
 else {
      logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ loc);
      break;
    }
  }
  if (S == null) {
    try {
      if (temp.exists() && temp.length() > 1) {
        logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
        InputStream in=new FileInputStream(temp);
        BufferedInputStream bis=new BufferedInputStream(in);
        if (bis.available() <= 0) {
          logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
        }
 else {
          logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
          return bis;
        }
      }
 else {
        logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
      }
    }
 catch (    Exception e) {
      logger.log(Level.WARNING,e.getMessage());
    }
  }
 else {
    String user=Minecraft.getMinecraft().getSession().getUsername();
    if (user.equalsIgnoreCase(playerName)) {
      logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
      FileOutputStream fs=null;
      int times=0;
      try {
        if (!temp.getParentFile().exists())         temp.getParentFile().mkdir();
 else         if (temp.exists()) {
          temp.delete();
        }
        fs=new FileOutputStream(temp);
        int byteRead=0;
        byte[] buffer=new byte[1024];
        while ((byteRead=S.read(buffer)) != -1) {
          times+=byteRead;
          fs.write(buffer,0,byteRead);
          if (times >= C.getContentLength()) {
            logger.info(times + "String_Node_Str" + C.getContentLength());
            break;
          }
        }
        if (temp.length() > 1) {
          logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
        }
 else {
          temp.delete();
          logger.info("String_Node_Str" + (isCloak ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str"+ temp.getAbsolutePath());
        }
      }
 catch (      Exception e) {
        e.printStackTrace();
        logger.info(times + "String_Node_Str");
        logger.warning(e);
      }
 finally {
        try {
          if (fs != null)           fs.close();
          S.reset();
          logger.info("String_Node_Str" + S.available());
        }
 catch (        IOException e) {
          logger.warning(e);
        }
      }
    }
    return S;
  }
  logger.log(Level.INFO,"String_Node_Str");
  return getStream(str_replace("String_Node_Str",playerName,isCloak ? DefaultCloakURL : DefaultSkinURL),true);
}