Program: 7521
Project: 7521
Buggy source:
private static Location createDeploymentJar(Class<?> clz) throws IOException {
  File tempFile=File.createTempFile(clz.getName(),"String_Node_Str");
  Location tempJarLocation=new LocalLocationFactory().create(tempFile.getPath());
  ClassLoader remembered=Thread.currentThread().getContextClassLoader();
  Thread.currentThread().setContextClassLoader(clz.getClassLoader());
  try {
    ApplicationBundler bundler=new ApplicationBundler(ImmutableList.of("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"));
    bundler.createBundle(tempJarLocation,clz);
  }
  finally {
    Thread.currentThread().setContextClassLoader(remembered);
  }
  File outFile=File.createTempFile(clz.getName(),"String_Node_Str");
  Location outJarLocation=new LocalLocationFactory().create(outFile.getPath());
  JarOutputStream jarOutput=new JarOutputStream(outJarLocation.getOutputStream());
  try {
    JarInputStream jarInput=new JarInputStream(tempJarLocation.getInputStream());
    try {
      JarEntry jarEntry=jarInput.getNextJarEntry();
      while (jarEntry != null) {
        boolean isDir=jarEntry.isDirectory();
        String entryName=jarEntry.getName();
        if (!entryName.equals("String_Node_Str")) {
          if (entryName.startsWith("String_Node_Str")) {
            jarEntry=new JarEntry(entryName.substring("String_Node_Str".length()));
          }
 else {
            jarEntry=new JarEntry(entryName);
          }
          jarOutput.putNextEntry(jarEntry);
          if (!isDir) {
            ByteStreams.copy(jarInput,jarOutput);
          }
        }
        jarEntry=jarInput.getNextJarEntry();
      }
    }
  finally {
      jarInput.close();
    }
  }
  finally {
    jarOutput.close();
  }
  return outJarLocation;
}

Fixed version (ground truth):
private static Location createDeploymentJar(Class<?> clz,Location destination) throws IOException {
  Location tempBundle=destination.getTempFile("String_Node_Str");
  try {
    ClassLoader remembered=Thread.currentThread().getContextClassLoader();
    Thread.currentThread().setContextClassLoader(clz.getClassLoader());
    try {
      ApplicationBundler bundler=new ApplicationBundler(ImmutableList.of("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"));
      bundler.createBundle(tempBundle,clz);
    }
  finally {
      Thread.currentThread().setContextClassLoader(remembered);
    }
    JarOutputStream jarOutput=new JarOutputStream(destination.getOutputStream());
    try {
      JarInputStream jarInput=new JarInputStream(tempBundle.getInputStream());
      try {
        Set<String> seen=Sets.newHashSet();
        JarEntry jarEntry=jarInput.getNextJarEntry();
        while (jarEntry != null) {
          boolean isDir=jarEntry.isDirectory();
          String entryName=jarEntry.getName();
          if (!entryName.equals("String_Node_Str")) {
            if (entryName.startsWith("String_Node_Str")) {
              jarEntry=new JarEntry(entryName.substring("String_Node_Str".length()));
            }
 else {
              jarEntry=new JarEntry(entryName);
            }
            if (seen.add(jarEntry.getName())) {
              jarOutput.putNextEntry(jarEntry);
              if (!isDir) {
                ByteStreams.copy(jarInput,jarOutput);
              }
            }
          }
          jarEntry=jarInput.getNextJarEntry();
        }
      }
  finally {
        jarInput.close();
      }
    }
  finally {
      jarOutput.close();
    }
    return destination;
  }
  finally {
    tempBundle.delete();
  }
}