Program: 96223
Project: 96223
Buggy source:
/** 
 * oh my. Java likes to think that ALL windows tray icons are 16x16.... Lets fix that! http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/windows/native/sun/windows/awt_TrayIcon.cpp http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/windows/classes/sun/awt/windows/WTrayIconPeer.java
 */
public static void fixWindows(int trayIconSize){
  if (isOracleVM()) {
    return;
  }
  if (isSwingTrayLoaded()) {
    throw new RuntimeException("String_Node_Str");
  }
  try {
    @SuppressWarnings("String_Node_Str") java.awt.Robot robot=new java.awt.Robot();
    ClassPool pool=ClassPool.getDefault();
    byte[] trayBytes;
    byte[] trayIconBytes;
{
      CtClass trayClass=pool.get("String_Node_Str");
      trayClass.setModifiers(trayClass.getModifiers() & javassist.Modifier.PUBLIC);
      trayClass.getConstructors()[0].setModifiers(trayClass.getConstructors()[0].getModifiers() & javassist.Modifier.PUBLIC);
      CtMethod method=trayClass.getDeclaredMethod("String_Node_Str");
      CtBehavior methodInfos[]=new CtBehavior[]{method};
      fixTraySize(methodInfos,trayIconSize);
      method.getMethodInfo().rebuildStackMapForME(trayClass.getClassPool());
      trayBytes=trayClass.toBytecode();
    }
{
      CtClass trayIconClass=pool.get("String_Node_Str");
      CtMethod ctMethodCreate=trayIconClass.getDeclaredMethod("String_Node_Str");
      CtMethod ctMethodUpdate=trayIconClass.getDeclaredMethod("String_Node_Str");
      int TRAY_MASK=(trayIconSize * trayIconSize) / 8;
      ctMethodCreate.setBody("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str" + TRAY_MASK + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      ctMethodUpdate.setBody("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      ctMethodCreate.getMethodInfo().rebuildStackMapForME(trayIconClass.getClassPool());
      ctMethodUpdate.getMethodInfo().rebuildStackMapForME(trayIconClass.getClassPool());
      trayIconBytes=trayIconClass.toBytecode();
    }
    BootStrapClassLoader.defineClass(trayBytes);
    BootStrapClassLoader.defineClass(trayIconBytes);
    if (SystemTray.DEBUG) {
      logger.debug("String_Node_Str",trayIconSize);
    }
  }
 catch (  Exception e) {
    logger.error("String_Node_Str",trayIconSize,e);
  }
}

Fixed version (ground truth):
/** 
 * oh my. Java likes to think that ALL windows tray icons are 16x16.... Lets fix that! http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/windows/native/sun/windows/awt_TrayIcon.cpp http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/windows/classes/sun/awt/windows/WTrayIconPeer.java
 */
public static void fixWindows(int trayIconSize){
  if (isOracleVM()) {
    return;
  }
  if (isSwingTrayLoaded()) {
    throw new RuntimeException("String_Node_Str");
  }
  try {
    @SuppressWarnings("String_Node_Str") java.awt.Robot robot=new java.awt.Robot();
    ClassPool pool=ClassPool.getDefault();
    byte[] trayBytes;
    byte[] trayIconBytes;
{
      CtClass trayClass=pool.get("String_Node_Str");
      trayClass.setModifiers(trayClass.getModifiers() & javassist.Modifier.PUBLIC);
      trayClass.getConstructors()[0].setModifiers(trayClass.getConstructors()[0].getModifiers() & javassist.Modifier.PUBLIC);
      CtMethod method=trayClass.getDeclaredMethod("String_Node_Str");
      CtBehavior methodInfos[]=new CtBehavior[]{method};
      fixTraySize(methodInfos,16,trayIconSize);
      method.getMethodInfo().rebuildStackMapForME(trayClass.getClassPool());
      trayBytes=trayClass.toBytecode();
    }
{
      CtClass trayIconClass=pool.get("String_Node_Str");
      CtMethod ctMethodCreate=trayIconClass.getDeclaredMethod("String_Node_Str");
      CtMethod ctMethodUpdate=trayIconClass.getDeclaredMethod("String_Node_Str");
      int TRAY_MASK=(trayIconSize * trayIconSize) / 8;
      ctMethodCreate.setBody("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str" + TRAY_MASK + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      ctMethodUpdate.setBody("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      ctMethodCreate.getMethodInfo().rebuildStackMapForME(trayIconClass.getClassPool());
      ctMethodUpdate.getMethodInfo().rebuildStackMapForME(trayIconClass.getClassPool());
      trayIconBytes=trayIconClass.toBytecode();
    }
    BootStrapClassLoader.defineClass(trayBytes);
    BootStrapClassLoader.defineClass(trayIconBytes);
    if (SystemTray.DEBUG) {
      logger.debug("String_Node_Str",trayIconSize);
    }
  }
 catch (  Exception e) {
    logger.error("String_Node_Str",trayIconSize,e);
  }
}