nus-yam/ex-repair huggingface dataset:
Program: 53180
Project: 53180
Buggy source:
@Override public Optional<Linker.LinkableDepType> getPreferredLinkage(CxxPlatform cxxPlatform){
  return Optional.absent();
}

Fixed version (ground truth):
@Override public NativeLinkable.Linkage getPreferredLinkage(CxxPlatform cxxPlatform){
  return Linkage.ANY;
}
Program: 53181
Project: 53181
Buggy source:
@Override public Optional<Linker.LinkableDepType> getPreferredLinkage(CxxPlatform cxxPlatform){
  return Optional.absent();
}

Fixed version (ground truth):
@Override public NativeLinkable.Linkage getPreferredLinkage(CxxPlatform cxxPlatform){
  return Linkage.ANY;
}
Program: 53183
Project: 53183
Buggy source:
@Override public Optional<Linker.LinkableDepType> getPreferredLinkage(CxxPlatform cxxPlatform){
  return Optional.absent();
}

Fixed version (ground truth):
@Override public NativeLinkable.Linkage getPreferredLinkage(CxxPlatform cxxPlatform){
  return Linkage.ANY;
}
Program: 53185
Project: 53185
Buggy source:
@Override public Optional<Linker.LinkableDepType> getPreferredLinkage(CxxPlatform cxxPlatform){
  return Optional.absent();
}

Fixed version (ground truth):
@Override public NativeLinkable.Linkage getPreferredLinkage(CxxPlatform cxxPlatform){
  return Linkage.ANY;
}
Program: 53188
Project: 53188
Buggy source:
@Override public Optional<Linker.LinkableDepType> getPreferredLinkage(CxxPlatform cxxPlatform){
  return Optional.absent();
}

Fixed version (ground truth):
@Override public NativeLinkable.Linkage getPreferredLinkage(CxxPlatform cxxPlatform){
  return Linkage.ANY;
}
Program: 53190
Project: 53190
Buggy source:
@Override public Optional<Linker.LinkableDepType> getPreferredLinkage(CxxPlatform cxxPlatform){
  return Optional.absent();
}

Fixed version (ground truth):
@Override public NativeLinkable.Linkage getPreferredLinkage(CxxPlatform cxxPlatform){
  return Linkage.ANY;
}
Program: 53191
Project: 53191
Buggy source:
@Override public Optional<Linker.LinkableDepType> getPreferredLinkage(CxxPlatform cxxPlatform){
  return Optional.absent();
}

Fixed version (ground truth):
@Override public NativeLinkable.Linkage getPreferredLinkage(CxxPlatform cxxPlatform){
  return Linkage.ANY;
}
Program: 53193
Project: 53193
Buggy source:
public FakeNativeLinkable(String target,SourcePathResolver resolver,NativeLinkableInput nativeLinkableInput,Optional<Linker.LinkableDepType> preferredLinkage,ImmutableMap<String,SourcePath> sharedLibraries,BuildRule... deps){
  super(target,resolver,deps);
  this.nativeLinkableInput=nativeLinkableInput;
  this.preferredLinkage=preferredLinkage;
  this.sharedLibraries=sharedLibraries;
}

Fixed version (ground truth):
public FakeNativeLinkable(String target,SourcePathResolver resolver,NativeLinkableInput nativeLinkableInput,NativeLinkable.Linkage preferredLinkage,ImmutableMap<String,SourcePath> sharedLibraries,BuildRule... deps){
  super(target,resolver,deps);
  this.nativeLinkableInput=nativeLinkableInput;
  this.preferredLinkage=preferredLinkage;
  this.sharedLibraries=sharedLibraries;
}
Program: 53194
Project: 53194
Buggy source:
@Override public Optional<Linker.LinkableDepType> getPreferredLinkage(CxxPlatform cxxPlatform){
  return preferredLinkage;
}

Fixed version (ground truth):
@Override public NativeLinkable.Linkage getPreferredLinkage(CxxPlatform cxxPlatform){
  return preferredLinkage;
}
Program: 53195
Project: 53195
Buggy source:
@Test public void gatherTransitiveSharedLibraries(){
  SourcePathResolver resolver=new SourcePathResolver(new BuildRuleResolver());
  BuildRule c=new FakeNativeLinkable("String_Node_Str",resolver,NativeLinkableInput.builder().build(),Optional.<Linker.LinkableDepType>absent(),ImmutableMap.<String,SourcePath>of("String_Node_Str",new TestSourcePath("String_Node_Str")));
  BuildRule b=new FakeNativeLinkable("String_Node_Str",resolver,NativeLinkableInput.builder().build(),Optional.of(Linker.LinkableDepType.STATIC),ImmutableMap.<String,SourcePath>of("String_Node_Str",new TestSourcePath("String_Node_Str")),c);
  BuildRule a=new FakeNativeLinkable("String_Node_Str",resolver,NativeLinkableInput.builder().build(),Optional.<Linker.LinkableDepType>absent(),ImmutableMap.<String,SourcePath>of("String_Node_Str",new TestSourcePath("String_Node_Str")),b);
  ImmutableSortedMap<String,SourcePath> sharedLibs=NativeLinkables.getTransitiveSharedLibraries(CxxPlatformUtils.DEFAULT_PLATFORM,ImmutableList.of(a),Linker.LinkableDepType.SHARED,Predicates.instanceOf(NativeLinkable.class));
  assertThat(sharedLibs,Matchers.equalTo(ImmutableSortedMap.<String,SourcePath>of("String_Node_Str",new TestSourcePath("String_Node_Str"),"String_Node_Str",new TestSourcePath("String_Node_Str"))));
}

Fixed version (ground truth):
@Test public void gatherTransitiveSharedLibraries(){
  SourcePathResolver resolver=new SourcePathResolver(new BuildRuleResolver());
  BuildRule c=new FakeNativeLinkable("String_Node_Str",resolver,NativeLinkableInput.builder().build(),NativeLinkable.Linkage.ANY,ImmutableMap.<String,SourcePath>of("String_Node_Str",new TestSourcePath("String_Node_Str")));
  BuildRule b=new FakeNativeLinkable("String_Node_Str",resolver,NativeLinkableInput.builder().build(),NativeLinkable.Linkage.STATIC,ImmutableMap.<String,SourcePath>of("String_Node_Str",new TestSourcePath("String_Node_Str")),c);
  BuildRule a=new FakeNativeLinkable("String_Node_Str",resolver,NativeLinkableInput.builder().build(),NativeLinkable.Linkage.ANY,ImmutableMap.<String,SourcePath>of("String_Node_Str",new TestSourcePath("String_Node_Str")),b);
  ImmutableSortedMap<String,SourcePath> sharedLibs=NativeLinkables.getTransitiveSharedLibraries(CxxPlatformUtils.DEFAULT_PLATFORM,ImmutableList.of(a),Linker.LinkableDepType.SHARED,Predicates.instanceOf(NativeLinkable.class));
  assertThat(sharedLibs,Matchers.equalTo(ImmutableSortedMap.<String,SourcePath>of("String_Node_Str",new TestSourcePath("String_Node_Str"),"String_Node_Str",new TestSourcePath("String_Node_Str"))));
}
Program: 53198
Project: 53198
Buggy source:
public static ImmutableList<Path> extractZipFile(Path zipFile,Path destination,ExistingFileMode existingFileMode) throws IOException {
  Files.createDirectories(destination);
  return extractZipFile(zipFile,new ProjectFilesystem(destination),existingFileMode);
}

Fixed version (ground truth):
public static ImmutableList<Path> extractZipFile(Path zipFile,final Path destination,ExistingFileMode existingFileMode) throws IOException {
  Files.createDirectories(destination);
  return FluentIterable.from(extractZipFile(zipFile,new ProjectFilesystem(destination),existingFileMode)).transform(new Function<Path,Path>(){
    @Override public Path apply(    Path input){
      return destination.resolve(input).toAbsolutePath();
    }
  }
).toList();
}
Program: 53200
Project: 53200
Buggy source:
private static void writeEntriesToZip(File file,ImmutableMap<String,String> entries) throws IOException {
  try (ZipOutputStream zip=new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(file)))){
    for (    Map.Entry<String,String> mapEntry : entries.entrySet()) {
      ZipEntry entry=new ZipEntry(mapEntry.getKey());
      zip.putNextEntry(entry);
      zip.write(mapEntry.getValue().getBytes());
      zip.closeEntry();
    }
  }
 }

Fixed version (ground truth):
private static void writeEntriesToZip(File file,ImmutableMap<String,String> entries) throws IOException {
  try (ZipOutputStream zip=new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(file)))){
    for (    Map.Entry<String,String> mapEntry : entries.entrySet()) {
      ZipEntry entry=new ZipEntry(mapEntry.getKey());
      entry.setTime(0);
      zip.putNextEntry(entry);
      zip.write(mapEntry.getValue().getBytes());
      zip.closeEntry();
    }
  }
 }
Program: 53201
Project: 53201
Buggy source:
public void runComplete(ImmutableList.Builder<String> addTo,List<TestResults> completedResults){
  boolean isAllTestsPassed=true;
  boolean isAnyAssumptionViolated=false;
  ListMultimap<TestResults,TestCaseSummary> failingTests=ArrayListMultimap.create();
  int numFailures=0;
  for (  TestResults summary : completedResults) {
    if (!summary.isSuccess()) {
      isAllTestsPassed=false;
      numFailures+=summary.getFailureCount();
      failingTests.putAll(summary,summary.getFailures());
    }
    for (    TestCaseSummary testCaseSummary : summary.getTestCases()) {
      if (testCaseSummary.hasAssumptionViolations()) {
        isAnyAssumptionViolated=true;
        break;
      }
    }
  }
  if (completedResults.isEmpty()) {
    addTo.add(ansi.asHighlightedFailureText("String_Node_Str"));
  }
 else   if (isAllTestsPassed) {
    if (isAnyAssumptionViolated) {
      addTo.add(ansi.asHighlightedWarningText("String_Node_Str"));
    }
 else {
      addTo.add(ansi.asHighlightedSuccessText("String_Node_Str"));
    }
  }
 else {
    addTo.add(ansi.asHighlightedFailureText(String.format("String_Node_Str",numFailures)));
    for (    TestResults results : failingTests.keySet()) {
      addTo.add("String_Node_Str" + results.getBuildTarget().getFullyQualifiedName());
      for (      TestCaseSummary summary : failingTests.get(results)) {
        addTo.add(summary.toString());
      }
    }
  }
}

Fixed version (ground truth):
public void runComplete(ImmutableList.Builder<String> addTo,List<TestResults> completedResults){
  boolean isAllTestsPassed=true;
  boolean isAnyAssumptionViolated=false;
  ListMultimap<TestResults,TestCaseSummary> failingTests=ArrayListMultimap.create();
  int numFailures=0;
  for (  TestResults summary : completedResults) {
    if (!summary.isSuccess()) {
      isAllTestsPassed=false;
      numFailures+=summary.getFailureCount();
      failingTests.putAll(summary,summary.getFailures());
    }
    for (    TestCaseSummary testCaseSummary : summary.getTestCases()) {
      if (testCaseSummary.hasAssumptionViolations()) {
        isAnyAssumptionViolated=true;
        break;
      }
    }
  }
  if (completedResults.isEmpty()) {
    addTo.add(ansi.asHighlightedFailureText("String_Node_Str"));
  }
 else   if (isAllTestsPassed) {
    if (isAnyAssumptionViolated) {
      addTo.add(ansi.asHighlightedWarningText("String_Node_Str"));
    }
 else {
      addTo.add(ansi.asHighlightedSuccessText("String_Node_Str"));
    }
  }
 else {
    addTo.add(ansi.asHighlightedFailureText(String.format("String_Node_Str",numFailures,numFailures == 1 ? "String_Node_Str" : "String_Node_Str")));
    for (    TestResults results : failingTests.keySet()) {
      addTo.add("String_Node_Str" + results.getBuildTarget().getFullyQualifiedName());
      for (      TestCaseSummary summary : failingTests.get(results)) {
        addTo.add(summary.toString());
      }
    }
  }
}
Program: 53202
Project: 53202
Buggy source:
public <T extends Enum<T>>Optional<T> getEnum(String section,String field,Class<T> clazz){
  Optional<String> value=getValue(section,field);
  if (!value.isPresent()) {
    return Optional.absent();
  }
  try {
    return Optional.of(Enum.valueOf(clazz,value.get().toUpperCase(Locale.ROOT)));
  }
 catch (  IllegalArgumentException e) {
    throw new HumanReadableException("String_Node_Str",section,field,clazz.getEnumConstants(),value.get());
  }
}

Fixed version (ground truth):
public <T extends Enum<T>>Optional<T> getEnum(String section,String field,Class<T> clazz){
  Optional<String> value=getValue(section,field);
  if (!value.isPresent()) {
    return Optional.absent();
  }
  try {
    return Optional.of(Enum.valueOf(clazz,value.get().toUpperCase(Locale.ROOT)));
  }
 catch (  IllegalArgumentException e) {
    throw new HumanReadableException("String_Node_Str",section,field,Joiner.on("String_Node_Str").join(clazz.getEnumConstants()),value.get());
  }
}
Program: 53204
Project: 53204
Buggy source:
@Override public Path getManifestPath(){
  return enhancementResult.getAaptPackageResources().getAndroidManifestXml();
}

Fixed version (ground truth):
@Override public Path getManifestPath(){
  return BuildTargets.getGenPath(getBuildTarget(),"String_Node_Str");
}
Program: 53207
Project: 53207
Buggy source:
/** 
 * Similar to   {@link #createZip(Collection,File)}, but also takes a list of additional files to write in the zip, including their contents, as a map.
 */
public void createZip(Collection<Path> pathsToIncludeInZip,File out,ImmutableMap<Path,String> additionalFileContents) throws IOException {
  Preconditions.checkState(!Iterables.isEmpty(pathsToIncludeInZip));
  try (CustomZipOutputStream zip=ZipOutputStreams.newOutputStream(out)){
    for (    Path path : pathsToIncludeInZip) {
      CustomZipEntry entry=new CustomZipEntry(path.toString());
      Path full=getPathForRelativePath(path);
      File file=full.toFile();
      if (file.canExecute()) {
        entry.setExternalAttributes(MorePosixFilePermissions.toMode(EnumSet.of(PosixFilePermission.OWNER_EXECUTE)) << 16);
      }
      zip.putNextEntry(entry);
      try (InputStream input=Files.newInputStream(getPathForRelativePath(path))){
        ByteStreams.copy(input,zip);
      }
       zip.closeEntry();
    }
    for (    Map.Entry<Path,String> fileContentsEntry : additionalFileContents.entrySet()) {
      CustomZipEntry entry=new CustomZipEntry(fileContentsEntry.getKey().toString());
      zip.putNextEntry(entry);
      try (InputStream stream=new ByteArrayInputStream(fileContentsEntry.getValue().getBytes(Charsets.UTF_8))){
        ByteStreams.copy(stream,zip);
      }
       zip.closeEntry();
    }
  }
 }

Fixed version (ground truth):
/** 
 * Similar to   {@link #createZip(Collection,File)}, but also takes a list of additional files to write in the zip, including their contents, as a map.
 */
public void createZip(Collection<Path> pathsToIncludeInZip,File out,ImmutableMap<Path,String> additionalFileContents) throws IOException {
  Preconditions.checkState(!Iterables.isEmpty(pathsToIncludeInZip));
  try (CustomZipOutputStream zip=ZipOutputStreams.newOutputStream(out)){
    for (    Path path : pathsToIncludeInZip) {
      Path full=getPathForRelativePath(path);
      File file=full.toFile();
      boolean isDirectory=isDirectory(full);
      String entryName=path.toString();
      if (isDirectory) {
        entryName+="String_Node_Str";
      }
      CustomZipEntry entry=new CustomZipEntry(entryName);
      if (file.canExecute()) {
        entry.setExternalAttributes(MorePosixFilePermissions.toMode(EnumSet.of(PosixFilePermission.OWNER_EXECUTE)) << 16);
      }
      zip.putNextEntry(entry);
      if (!isDirectory) {
        try (InputStream input=Files.newInputStream(getPathForRelativePath(path))){
          ByteStreams.copy(input,zip);
        }
       }
      zip.closeEntry();
    }
    for (    Map.Entry<Path,String> fileContentsEntry : additionalFileContents.entrySet()) {
      CustomZipEntry entry=new CustomZipEntry(fileContentsEntry.getKey().toString());
      zip.putNextEntry(entry);
      try (InputStream stream=new ByteArrayInputStream(fileContentsEntry.getValue().getBytes(Charsets.UTF_8))){
        ByteStreams.copy(stream,zip);
      }
       zip.closeEntry();
    }
  }
 }
Program: 53208
Project: 53208
Buggy source:
private List<Path> getEntries(final Path outputDirectory) throws IOException {
  final ImmutableList.Builder<Path> entries=ImmutableList.builder();
  DirectoryTraversal traversal=new DirectoryTraversal(projectFilesystem.getFileForRelativePath(outputDirectory)){
    @Override public void visit(    File file,    String relativePath) throws IOException {
      entries.add(outputDirectory.resolve(relativePath));
    }
  }
;
  directoryTraverser.traverse(traversal);
  return entries.build();
}

Fixed version (ground truth):
private List<Path> getEntries(final Path outputDirectory) throws IOException {
  final ImmutableList.Builder<Path> entries=ImmutableList.builder();
  DirectoryTraversal traversal=new DirectoryTraversal(projectFilesystem.getFileForRelativePath(outputDirectory)){
    @Override public void visit(    File file,    String relativePath) throws IOException {
      entries.add(outputDirectory.resolve(relativePath));
    }
    @Override public void visitDirectory(    File directory,    String relativePath) throws IOException {
      entries.add(outputDirectory.resolve(relativePath));
    }
  }
;
  directoryTraverser.traverse(traversal);
  return entries.build();
}
Program: 53209
Project: 53209
Buggy source:
/** 
 * Waits up to   {@code millis} milliseconds for the given process to finish.
 */
private void waitForTimeout(final Process process,long millis) throws InterruptedException {
  Thread waiter=new Thread(new Runnable(){
    @Override public void run(){
      try {
        process.waitFor();
      }
 catch (      InterruptedException e) {
      }
    }
  }
);
  waiter.join(millis);
  waiter.interrupt();
  waiter.join();
}

Fixed version (ground truth):
/** 
 * Waits up to   {@code millis} milliseconds for the given process to finish.
 */
private void waitForTimeout(final Process process,long millis) throws InterruptedException {
  Thread waiter=new Thread(new Runnable(){
    @Override public void run(){
      try {
        process.waitFor();
      }
 catch (      InterruptedException e) {
      }
    }
  }
);
  waiter.start();
  waiter.join(millis);
  waiter.interrupt();
  waiter.join();
}
Program: 53210
Project: 53210
Buggy source:
@Test public void spinningTestTimesOut() throws IOException {
  ProjectWorkspace workspace=TestDataHelper.createProjectWorkspaceForScenario(this,"String_Node_Str",temp);
  workspace.setUp();
  ProjectWorkspace.ProcessResult result=workspace.runBuckCommand("String_Node_Str","String_Node_Str");
  result.assertSpecialExitCode("String_Node_Str",42);
  String stderr=result.getStderr();
  assertTrue(stderr,stderr.contains("String_Node_Str"));
}

Fixed version (ground truth):
@Test public void spinningTestTimesOut() throws IOException {
  ProjectWorkspace workspace=TestDataHelper.createProjectWorkspaceForScenario(this,"String_Node_Str",temp);
  workspace.setUp();
  workspace.writeContentsToPath("String_Node_Str","String_Node_Str");
  ProjectWorkspace.ProcessResult result=workspace.runBuckCommand("String_Node_Str","String_Node_Str");
  result.assertSpecialExitCode("String_Node_Str",42);
  String stderr=result.getStderr();
  assertTrue(stderr,stderr.contains("String_Node_Str"));
}
Program: 53211
Project: 53211
Buggy source:
public FieldMirror(int access,String name,String desc,String signature,Object value){
  super(Opcodes.ASM5,access,name,desc,signature,value);
}

Fixed version (ground truth):
public FieldMirror(int access,String name,String desc,String signature,Object value){
  super(Opcodes.ASM5,access,name,desc,signature,value);
  this.key=name + desc + signature;
}
Program: 53212
Project: 53212
Buggy source:
@Override public int compareTo(FieldMirror o){
  return desc.compareTo(o.desc);
}

Fixed version (ground truth):
@Override public int compareTo(FieldMirror o){
  return key.compareTo(o.key);
}
Program: 53214
Project: 53214
Buggy source:
@Override public int execute(ExecutionContext context){
  ProjectFilesystem filesystem=context.getProjectFilesystem();
  final ImmutableSet.Builder<Path> executablesBuilder=ImmutableSet.builder();
  try {
    filesystem.walkRelativeFileTree(destinationDir,new SimpleFileVisitor<Path>(){
      @Override public FileVisitResult visitFile(      Path file,      BasicFileAttributes attrs) throws IOException {
        if (file.toString().endsWith("String_Node_Str")) {
          executablesBuilder.add(file);
        }
        return FileVisitResult.CONTINUE;
      }
    }
);
    for (    Path exePath : executablesBuilder.build()) {
      Path fakeSoPath=Paths.get(exePath.toString().replaceAll("String_Node_Str","String_Node_Str"));
      filesystem.move(exePath,fakeSoPath);
    }
  }
 catch (  IOException e) {
    context.logError(e,"String_Node_Str");
    return 1;
  }
  return 0;
}

Fixed version (ground truth):
@Override public int execute(ExecutionContext context){
  for (  Path path : classPathEntriesToDex) {
    Optional<ImmutableSortedMap<String,HashCode>> hashes=AccumulateClassNamesStep.calculateClassHashes(context,path);
    if (!hashes.isPresent()) {
      return 1;
    }
    builder.putAll(hashes.get());
  }
  return 0;
}
Program: 53216
Project: 53216
Buggy source:
/** 
 * @return an Optional that will be absent if there was an error.
 */
private Optional<ImmutableSortedMap<String,HashCode>> calculateClassHashes(ExecutionContext context,Path path){
  final ImmutableSortedMap.Builder<String,HashCode> classNamesBuilder=ImmutableSortedMap.naturalOrder();
  ClasspathTraversal traversal=new ClasspathTraversal(Collections.singleton(path),context.getProjectFilesystem()){
    @Override public void visit(    final FileLike fileLike) throws IOException {
      if (!FileLikes.isClassFile(fileLike)) {
        return;
      }
      String key=FileLikes.getFileNameWithoutClassSuffix(fileLike);
      ByteSource input=new ByteSource(){
        @Override public InputStream openStream() throws IOException {
          return fileLike.getInput();
        }
      }
;
      HashCode value=input.hash(Hashing.sha1());
      classNamesBuilder.put(key,value);
    }
  }
;
  try {
    new DefaultClasspathTraverser().traverse(traversal);
  }
 catch (  IOException e) {
    context.logError(e,"String_Node_Str",pathToJarOrClassesDirectory);
    return Optional.absent();
  }
  return Optional.of(classNamesBuilder.build());
}

Fixed version (ground truth):
/** 
 * @return an Optional that will be absent if there was an error.
 */
public static Optional<ImmutableSortedMap<String,HashCode>> calculateClassHashes(ExecutionContext context,Path path){
  final ImmutableSortedMap.Builder<String,HashCode> classNamesBuilder=ImmutableSortedMap.naturalOrder();
  ClasspathTraversal traversal=new ClasspathTraversal(Collections.singleton(path),context.getProjectFilesystem()){
    @Override public void visit(    final FileLike fileLike) throws IOException {
      if (!FileLikes.isClassFile(fileLike)) {
        return;
      }
      String key=FileLikes.getFileNameWithoutClassSuffix(fileLike);
      ByteSource input=new ByteSource(){
        @Override public InputStream openStream() throws IOException {
          return fileLike.getInput();
        }
      }
;
      HashCode value=input.hash(Hashing.sha1());
      classNamesBuilder.put(key,value);
    }
  }
;
  try {
    new DefaultClasspathTraverser().traverse(traversal);
  }
 catch (  IOException e) {
    context.logError(e,"String_Node_Str",path);
    return Optional.absent();
  }
  return Optional.of(classNamesBuilder.build());
}
Program: 53217
Project: 53217
Buggy source:
private Builder(OCamlBuildContext context,OCamlBuckConfig config){
  this.context=Preconditions.checkNotNull(context);
  context.ocamlDepTool=config.getOCamlDepTool().or(DEFAULT_OCAML_DEP_TOOL);
  context.cCompiler=config.getCCompiler();
  context.ocamlCompiler=config.getOCamlCompiler().or(DEFAULT_OCAML_COMPILER);
  context.ocamlBytecodeCompiler=config.getOCamlBytecodeCompiler().or(DEFAULT_OCAML_BYTECODE_COMPILER);
  context.yaccCompiler=config.getYaccCompiler().or(DEFAULT_OCAML_YACC_COMPILER);
  context.lexCompiler=config.getLexCompiler().or(DEFAULT_OCAML_LEX_COMPILER);
}

Fixed version (ground truth):
private Builder(OCamlBuildContext context,OCamlBuckConfig config){
  this.context=Preconditions.checkNotNull(context);
  context.ocamlDepTool=config.getOCamlDepTool().or(DEFAULT_OCAML_DEP_TOOL);
  context.cCompiler=config.getCCompiler();
  context.cxxCompiler=config.getCxxCompiler();
  context.ocamlCompiler=config.getOCamlCompiler().or(DEFAULT_OCAML_COMPILER);
  context.ocamlBytecodeCompiler=config.getOCamlBytecodeCompiler().or(DEFAULT_OCAML_BYTECODE_COMPILER);
  context.yaccCompiler=config.getYaccCompiler().or(DEFAULT_OCAML_YACC_COMPILER);
  context.lexCompiler=config.getLexCompiler().or(DEFAULT_OCAML_LEX_COMPILER);
}
Program: 53218
Project: 53218
Buggy source:
private int executeLinking(ExecutionContext context,ImmutableList<String> linkerInputs) throws InterruptedException {
  OCamlLinkStep linkStep=new OCamlLinkStep(ocamlContext.getCCompiler(),ocamlContext.getOcamlCompiler(),ocamlContext.getOutput(),ocamlContext.getLinkableInput().getArgs(),linkerInputs,ocamlContext.getFlags(),ocamlContext.isLibrary(),false);
  return linkStep.execute(context);
}

Fixed version (ground truth):
private int executeLinking(ExecutionContext context,ImmutableList<String> linkerInputs) throws InterruptedException {
  OCamlLinkStep linkStep=new OCamlLinkStep(ocamlContext.getCxxCompiler(),ocamlContext.getOcamlCompiler(),ocamlContext.getOutput(),ocamlContext.getLinkableInput().getArgs(),linkerInputs,ocamlContext.getFlags(),ocamlContext.isLibrary(),false);
  return linkStep.execute(context);
}
Program: 53219
Project: 53219
Buggy source:
private int executeBytecodeLinking(ExecutionContext context,ImmutableList<String> linkerInputs) throws InterruptedException {
  OCamlLinkStep linkStep=new OCamlLinkStep(ocamlContext.getCCompiler(),ocamlContext.getOcamlBytecodeCompiler(),ocamlContext.getBytecodeOutput(),ocamlContext.getLinkableInput().getArgs(),linkerInputs,ocamlContext.getFlags(),ocamlContext.isLibrary(),true);
  return linkStep.execute(context);
}

Fixed version (ground truth):
private int executeBytecodeLinking(ExecutionContext context,ImmutableList<String> linkerInputs) throws InterruptedException {
  OCamlLinkStep linkStep=new OCamlLinkStep(ocamlContext.getCxxCompiler(),ocamlContext.getOcamlBytecodeCompiler(),ocamlContext.getBytecodeOutput(),ocamlContext.getLinkableInput().getArgs(),linkerInputs,ocamlContext.getFlags(),ocamlContext.isLibrary(),true);
  return linkStep.execute(context);
}
Program: 53220
Project: 53220
Buggy source:
public OCamlLinkStep(Path cCompiler,Path ocamlCompiler,Path output,ImmutableList<String> depInput,ImmutableList<String> input,ImmutableList<String> flags,boolean isLibrary,boolean isBytecode){
  this.isLibrary=isLibrary;
  this.isBytecode=isBytecode;
  this.ocamlCompiler=Preconditions.checkNotNull(ocamlCompiler);
  this.cCompiler=Preconditions.checkNotNull(cCompiler);
  this.flags=Preconditions.checkNotNull(flags);
  this.output=Preconditions.checkNotNull(output);
  this.depInput=Preconditions.checkNotNull(depInput);
  this.input=Preconditions.checkNotNull(input);
  ImmutableList.Builder<String> aAndOInputBuilder=ImmutableList.builder();
  ImmutableList.Builder<String> ocamlInputBuilder=ImmutableList.builder();
  for (  String linkInput : this.depInput) {
    if (linkInput.endsWith(OCamlCompilables.OCAML_O) || linkInput.endsWith(OCamlCompilables.OCAML_A)) {
      aAndOInputBuilder.add(linkInput);
    }
 else {
      if (!(isLibrary && linkInput.endsWith(OCamlCompilables.OCAML_CMXA))) {
        if (!isBytecode) {
          ocamlInputBuilder.add(linkInput);
        }
 else {
          String bytecodeLinkInput=linkInput.replaceAll(OCamlCompilables.OCAML_CMXA_REGEX,OCamlCompilables.OCAML_CMA);
          ocamlInputBuilder.add(bytecodeLinkInput);
        }
      }
    }
  }
  this.ocamlInput=ocamlInputBuilder.build();
  this.aAndOInput=aAndOInputBuilder.build().reverse();
}

Fixed version (ground truth):
public OCamlLinkStep(Path cxxCompiler,Path ocamlCompiler,Path output,ImmutableList<String> depInput,ImmutableList<String> input,ImmutableList<String> flags,boolean isLibrary,boolean isBytecode){
  this.isLibrary=isLibrary;
  this.isBytecode=isBytecode;
  this.ocamlCompiler=Preconditions.checkNotNull(ocamlCompiler);
  this.cxxCompiler=Preconditions.checkNotNull(cxxCompiler);
  this.flags=Preconditions.checkNotNull(flags);
  this.output=Preconditions.checkNotNull(output);
  this.depInput=Preconditions.checkNotNull(depInput);
  this.input=Preconditions.checkNotNull(input);
  ImmutableList.Builder<String> aAndOInputBuilder=ImmutableList.builder();
  ImmutableList.Builder<String> ocamlInputBuilder=ImmutableList.builder();
  for (  String linkInput : this.depInput) {
    if (linkInput.endsWith(OCamlCompilables.OCAML_O) || linkInput.endsWith(OCamlCompilables.OCAML_A)) {
      aAndOInputBuilder.add(linkInput);
    }
 else {
      if (!(isLibrary && linkInput.endsWith(OCamlCompilables.OCAML_CMXA))) {
        if (!isBytecode) {
          ocamlInputBuilder.add(linkInput);
        }
 else {
          String bytecodeLinkInput=linkInput.replaceAll(OCamlCompilables.OCAML_CMXA_REGEX,OCamlCompilables.OCAML_CMA);
          ocamlInputBuilder.add(bytecodeLinkInput);
        }
      }
    }
  }
  this.ocamlInput=ocamlInputBuilder.build();
  this.aAndOInput=aAndOInputBuilder.build().reverse();
}
Program: 53221
Project: 53221
Buggy source:
@Override protected ImmutableList<String> getShellCommandInternal(ExecutionContext context){
  return ImmutableList.<String>builder().add(ocamlCompiler.toString()).addAll(OCamlCompilables.DEFAULT_OCAML_FLAGS).add("String_Node_Str").add(cCompiler.toString()).addAll((isLibrary ? Optional.of("String_Node_Str") : Optional.<String>absent()).asSet()).addAll((!isLibrary && isBytecode ? Optional.of("String_Node_Str") : Optional.<String>absent()).asSet()).add("String_Node_Str",output.toString()).addAll(flags).addAll(this.ocamlInput).addAll(this.input).addAll(this.aAndOInput).build();
}

Fixed version (ground truth):
@Override protected ImmutableList<String> getShellCommandInternal(ExecutionContext context){
  return ImmutableList.<String>builder().add(ocamlCompiler.toString()).addAll(OCamlCompilables.DEFAULT_OCAML_FLAGS).add("String_Node_Str").add(cxxCompiler.toString()).addAll((isLibrary ? Optional.of("String_Node_Str") : Optional.<String>absent()).asSet()).addAll((!isLibrary && isBytecode ? Optional.of("String_Node_Str") : Optional.<String>absent()).asSet()).add("String_Node_Str",output.toString()).addAll(flags).addAll(this.ocamlInput).addAll(this.input).addAll(this.aAndOInput).build();
}
Program: 53222
Project: 53222
Buggy source:
@Override protected void actuallyClose() throws IOException {
  long currentOffset=0;
  for (  Map.Entry<File,EntryAccounting> mapEntry : entries.entrySet()) {
    EntryAccounting entry=mapEntry.getValue();
    entry.setOffset(currentOffset);
    currentOffset+=entry.writeLocalFileHeader(delegate);
    Files.copy(mapEntry.getKey().toPath(),delegate);
    currentOffset+=entry.close(delegate);
  }
  new CentralDirectory().writeCentralDirectory(delegate,currentOffset,entries.values());
  delegate.close();
  SimpleFileVisitor<Path> visitor=new SimpleFileVisitor<Path>(){
    @Override public FileVisitResult visitFile(    Path file,    BasicFileAttributes attrs) throws IOException {
      Files.delete(file);
      return FileVisitResult.CONTINUE;
    }
    @Override public FileVisitResult postVisitDirectory(    Path dir,    IOException exc) throws IOException {
      if (exc == null) {
        Files.delete(dir);
        return FileVisitResult.CONTINUE;
      }
      throw exc;
    }
  }
;
  Files.walkFileTree(scratchDir.toPath(),visitor);
}

Fixed version (ground truth):
@Override protected void actuallyClose() throws IOException {
  long currentOffset=0;
  for (  Map.Entry<File,EntryAccounting> mapEntry : entries.entrySet()) {
    EntryAccounting entry=mapEntry.getValue();
    entry.setOffset(currentOffset);
    currentOffset+=entry.writeLocalFileHeader(delegate);
    Files.copy(mapEntry.getKey().toPath(),delegate);
    long closeSize=entry.close(delegate);
    if (closeSize == 0) {
      currentOffset+=entry.getSize();
    }
 else {
      currentOffset+=closeSize;
    }
  }
  new CentralDirectory().writeCentralDirectory(delegate,currentOffset,entries.values());
  delegate.close();
  SimpleFileVisitor<Path> visitor=new SimpleFileVisitor<Path>(){
    @Override public FileVisitResult visitFile(    Path file,    BasicFileAttributes attrs) throws IOException {
      Files.delete(file);
      return FileVisitResult.CONTINUE;
    }
    @Override public FileVisitResult postVisitDirectory(    Path dir,    IOException exc) throws IOException {
      if (exc == null) {
        Files.delete(dir);
        return FileVisitResult.CONTINUE;
      }
      throw exc;
    }
  }
;
  Files.walkFileTree(scratchDir.toPath(),visitor);
}
Program: 53223
Project: 53223
Buggy source:
@Override public FileVisitResult visitFile(Path file,BasicFileAttributes attributes) throws IOException {
  if (!paths.isEmpty() && !paths.contains(file)) {
    return FileVisitResult.CONTINUE;
  }
  Path relativePath=junkPaths ? file.getFileName() : baseDir.relativize(file);
  String entryName=MorePaths.pathWithUnixSeparators(relativePath);
  CustomZipEntry entry=new CustomZipEntry(entryName);
  entry.setTime(attributes.lastModifiedTime().toMillis());
  entry.setSize(attributes.size());
  entry.setCompressionLevel(compressionLevel);
  out.putNextEntry(entry);
  Files.copy(filesystem.resolve(file),out);
  out.closeEntry();
  return FileVisitResult.CONTINUE;
}

Fixed version (ground truth):
@Override public FileVisitResult visitFile(Path file,BasicFileAttributes attributes) throws IOException {
  if (!paths.isEmpty() && !paths.contains(file)) {
    return FileVisitResult.CONTINUE;
  }
  Path resolvedPath=filesystem.resolve(file);
  Path relativePath=junkPaths ? file.getFileName() : baseDir.relativize(file);
  String entryName=MorePaths.pathWithUnixSeparators(relativePath);
  CustomZipEntry entry=new CustomZipEntry(entryName);
  entry.setTime(attributes.lastModifiedTime().toMillis());
  entry.setCompressionLevel(compressionLevel);
  if (entry.getMethod() == ZipEntry.STORED) {
    entry.setSize(attributes.size());
    entry.setCompressedSize(attributes.size());
    entry.setCrc(com.google.common.io.Files.hash(resolvedPath.toFile(),Hashing.crc32()).padToLong());
  }
  out.putNextEntry(entry);
  Files.copy(resolvedPath,out);
  out.closeEntry();
  return FileVisitResult.CONTINUE;
}
Program: 53225
Project: 53225
Buggy source:
@Test public void shouldPreferStrongLinkingFrameworks() throws IOException {
  BuildRule rule=createBuildRuleWithDefaults(BuildTarget.builder("String_Node_Str","String_Node_Str").setFlavor(AppleLibraryDescription.DYNAMIC_LIBRARY).build(),ImmutableSortedSet.<BuildRule>of(),appleLibraryDescription,new Function<AppleNativeTargetDescriptionArg,AppleNativeTargetDescriptionArg>(){
    @Override public AppleNativeTargetDescriptionArg apply(    AppleNativeTargetDescriptionArg input){
      input.frameworks=Optional.of(ImmutableSortedSet.of("String_Node_Str"));
      input.weakFrameworks=Optional.of(ImmutableSortedSet.of("String_Node_Str"));
      return input;
    }
  }
);
  ProjectGenerator projectGenerator=createProjectGeneratorForCombinedProject(ImmutableSet.of(rule),ImmutableSet.of(rule.getBuildTarget()));
  projectGenerator.createXcodeProjects();
  PBXProject generatedProject=projectGenerator.getGeneratedProject();
  PBXTarget target=assertTargetExistsAndReturnTarget(generatedProject,"String_Node_Str");
  PBXBuildPhase buildPhase=ProjectGeneratorTestUtils.getSingletonPhaseByType(target,PBXFrameworksBuildPhase.class);
  assertEquals(buildPhase.getFiles().size(),1);
  PBXBuildFile file=buildPhase.getFiles().get(0);
  assertFalse(file.getSettings().isPresent());
  PBXReference.SourceTree sourceTree=file.getFileRef().getSourceTree();
  String serialized="String_Node_Str" + sourceTree + "String_Node_Str"+ file.getFileRef().getPath();
  assertEquals(serialized,"String_Node_Str");
}

Fixed version (ground truth):
@Test public void shouldPreferStrongLinkingFrameworks() throws IOException {
  BuildRule rule=createBuildRuleWithDefaults(BuildTarget.builder("String_Node_Str","String_Node_Str").setFlavor(AppleLibraryDescription.DYNAMIC_LIBRARY).build(),new BuildRuleResolver(),ImmutableSortedSet.<BuildRule>of(),appleLibraryDescription,new Function<AppleNativeTargetDescriptionArg,AppleNativeTargetDescriptionArg>(){
    @Override public AppleNativeTargetDescriptionArg apply(    AppleNativeTargetDescriptionArg input){
      input.frameworks=Optional.of(ImmutableSortedSet.of("String_Node_Str"));
      input.weakFrameworks=Optional.of(ImmutableSortedSet.of("String_Node_Str"));
      return input;
    }
  }
);
  ProjectGenerator projectGenerator=createProjectGeneratorForCombinedProject(ImmutableSet.of(rule),ImmutableSet.of(rule.getBuildTarget()));
  projectGenerator.createXcodeProjects();
  PBXProject generatedProject=projectGenerator.getGeneratedProject();
  PBXTarget target=assertTargetExistsAndReturnTarget(generatedProject,"String_Node_Str");
  PBXBuildPhase buildPhase=ProjectGeneratorTestUtils.getSingletonPhaseByType(target,PBXFrameworksBuildPhase.class);
  assertEquals(buildPhase.getFiles().size(),1);
  PBXBuildFile file=buildPhase.getFiles().get(0);
  assertFalse(file.getSettings().isPresent());
  PBXReference.SourceTree sourceTree=file.getFileRef().getSourceTree();
  String serialized="String_Node_Str" + sourceTree + "String_Node_Str"+ file.getFileRef().getPath();
  assertEquals(serialized,"String_Node_Str");
}
Program: 53227
Project: 53227
Buggy source:
/** 
 * @param directory that must not contain symlinks with loops.
 * @param jar is the file being written.
 */
private void addFilesInDirectoryToJar(File directory,final CustomZipOutputStream jar,final Set<String> alreadyAddedEntries,final BuckEventBus eventBus) throws IOException {
  new DirectoryTraversal(directory){
    @Override public void visit(    File file,    String relativePath){
      JarEntry entry=new JarEntry(relativePath);
      String entryName=entry.getName();
      entry.setTime(file.lastModified());
      try {
        if (!isDuplicateAllowed(entryName) && !alreadyAddedEntries.add(entryName)) {
          if (!entryName.endsWith("String_Node_Str")) {
            eventBus.post(ConsoleEvent.create(determineSeverity(entry),"String_Node_Str",relativePath));
          }
          return;
        }
        jar.putNextEntry(entry);
        Files.copy(file,jar);
        jar.closeEntry();
      }
 catch (      IOException e) {
        Throwables.propagate(e);
      }
    }
    @Override public void visitDirectory(    File directory,    String relativePath) throws IOException {
      if (relativePath.isEmpty()) {
        return;
      }
      String entryName=relativePath + "String_Node_Str";
      if (alreadyAddedEntries.contains(entryName)) {
        return;
      }
      JarEntry entry=new JarEntry(entryName);
      entry.setTime(directory.lastModified());
      jar.putNextEntry(entry);
      jar.closeEntry();
    }
  }
.traverse();
}

Fixed version (ground truth):
/** 
 * @param directory that must not contain symlinks with loops.
 * @param jar is the file being written.
 */
private void addFilesInDirectoryToJar(File directory,final CustomZipOutputStream jar,final Set<String> alreadyAddedEntries,final BuckEventBus eventBus) throws IOException {
  new DirectoryTraversal(directory){
    @Override public void visit(    File file,    String relativePath){
      JarEntry entry=new JarEntry(relativePath.replace('\\','/'));
      String entryName=entry.getName();
      entry.setTime(file.lastModified());
      try {
        if (!isDuplicateAllowed(entryName) && !alreadyAddedEntries.add(entryName)) {
          if (!entryName.endsWith("String_Node_Str")) {
            eventBus.post(ConsoleEvent.create(determineSeverity(entry),"String_Node_Str",relativePath));
          }
          return;
        }
        jar.putNextEntry(entry);
        Files.copy(file,jar);
        jar.closeEntry();
      }
 catch (      IOException e) {
        Throwables.propagate(e);
      }
    }
    @Override public void visitDirectory(    File directory,    String relativePath) throws IOException {
      if (relativePath.isEmpty()) {
        return;
      }
      String entryName=relativePath.replace('\\','/') + "String_Node_Str";
      if (alreadyAddedEntries.contains(entryName)) {
        return;
      }
      JarEntry entry=new JarEntry(entryName);
      entry.setTime(directory.lastModified());
      jar.putNextEntry(entry);
      jar.closeEntry();
    }
  }
.traverse();
}
Program: 53228
Project: 53228
Buggy source:
@Override public void visitDirectory(File directory,String relativePath) throws IOException {
  if (relativePath.isEmpty()) {
    return;
  }
  String entryName=relativePath + "String_Node_Str";
  if (alreadyAddedEntries.contains(entryName)) {
    return;
  }
  JarEntry entry=new JarEntry(entryName);
  entry.setTime(directory.lastModified());
  jar.putNextEntry(entry);
  jar.closeEntry();
}

Fixed version (ground truth):
@Override public void visitDirectory(File directory,String relativePath) throws IOException {
  if (relativePath.isEmpty()) {
    return;
  }
  String entryName=relativePath.replace('\\','/') + "String_Node_Str";
  if (alreadyAddedEntries.contains(entryName)) {
    return;
  }
  JarEntry entry=new JarEntry(entryName);
  entry.setTime(directory.lastModified());
  jar.putNextEntry(entry);
  jar.closeEntry();
}
Program: 53229
Project: 53229
Buggy source:
@Override public void visit(File file,String relativePath){
  JarEntry entry=new JarEntry(relativePath);
  String entryName=entry.getName();
  entry.setTime(file.lastModified());
  try {
    if (!isDuplicateAllowed(entryName) && !alreadyAddedEntries.add(entryName)) {
      if (!entryName.endsWith("String_Node_Str")) {
        eventBus.post(ConsoleEvent.create(determineSeverity(entry),"String_Node_Str",relativePath));
      }
      return;
    }
    jar.putNextEntry(entry);
    Files.copy(file,jar);
    jar.closeEntry();
  }
 catch (  IOException e) {
    Throwables.propagate(e);
  }
}

Fixed version (ground truth):
@Override public void visit(File file,String relativePath){
  JarEntry entry=new JarEntry(relativePath.replace('\\','/'));
  String entryName=entry.getName();
  entry.setTime(file.lastModified());
  try {
    if (!isDuplicateAllowed(entryName) && !alreadyAddedEntries.add(entryName)) {
      if (!entryName.endsWith("String_Node_Str")) {
        eventBus.post(ConsoleEvent.create(determineSeverity(entry),"String_Node_Str",relativePath));
      }
      return;
    }
    jar.putNextEntry(entry);
    Files.copy(file,jar);
    jar.closeEntry();
  }
 catch (  IOException e) {
    Throwables.propagate(e);
  }
}
Program: 53230
Project: 53230
Buggy source:
@Override public FileVisitResult visitFile(Path file,BasicFileAttributes attributes) throws IOException {
  if (!paths.isEmpty() && !paths.contains(file)) {
    return FileVisitResult.CONTINUE;
  }
  Path relativePath=junkPaths ? file.getFileName() : baseDir.relativize(file);
  String entryName=relativePath.toString();
  CustomZipEntry entry=new CustomZipEntry(entryName);
  entry.setTime(attributes.lastModifiedTime().toMillis());
  entry.setSize(attributes.size());
  entry.setCompressionLevel(compressionLevel);
  out.putNextEntry(entry);
  Files.copy(filesystem.resolve(file),out);
  out.closeEntry();
  return FileVisitResult.CONTINUE;
}

Fixed version (ground truth):
@Override public FileVisitResult visitFile(Path file,BasicFileAttributes attributes) throws IOException {
  if (!paths.isEmpty() && !paths.contains(file)) {
    return FileVisitResult.CONTINUE;
  }
  Path relativePath=junkPaths ? file.getFileName() : baseDir.relativize(file);
  String entryName=MorePaths.pathWithUnixSeparators(relativePath);
  CustomZipEntry entry=new CustomZipEntry(entryName);
  entry.setTime(attributes.lastModifiedTime().toMillis());
  entry.setSize(attributes.size());
  entry.setCompressionLevel(compressionLevel);
  out.putNextEntry(entry);
  Files.copy(filesystem.resolve(file),out);
  out.closeEntry();
  return FileVisitResult.CONTINUE;
}
Program: 53231
Project: 53231
Buggy source:
@Override public int execute(ExecutionContext context){
  final ProjectFilesystem filesystem=context.getProjectFilesystem();
  if (filesystem.exists(pathToZipFile)) {
    context.postEvent(ConsoleEvent.severe("String_Node_Str",pathToZipFile));
    return 1;
  }
  try (BufferedOutputStream baseOut=new BufferedOutputStream(filesystem.newFileOutputStream(pathToZipFile));final CustomZipOutputStream out=ZipOutputStreams.newOutputStream(baseOut,OVERWRITE_EXISTING)){
    final FileVisitor<Path> pathFileVisitor=new SimpleFileVisitor<Path>(){
      @Override public FileVisitResult visitFile(      Path file,      BasicFileAttributes attributes) throws IOException {
        if (!paths.isEmpty() && !paths.contains(file)) {
          return FileVisitResult.CONTINUE;
        }
        Path relativePath=junkPaths ? file.getFileName() : baseDir.relativize(file);
        String entryName=relativePath.toString();
        CustomZipEntry entry=new CustomZipEntry(entryName);
        entry.setTime(attributes.lastModifiedTime().toMillis());
        entry.setSize(attributes.size());
        entry.setCompressionLevel(compressionLevel);
        out.putNextEntry(entry);
        Files.copy(filesystem.resolve(file),out);
        out.closeEntry();
        return FileVisitResult.CONTINUE;
      }
    }
;
    filesystem.walkRelativeFileTree(baseDir,pathFileVisitor);
  }
 catch (  IOException e) {
    context.logError(e,"String_Node_Str",pathToZipFile);
    return 1;
  }
  return 0;
}

Fixed version (ground truth):
@Override public int execute(ExecutionContext context){
  final ProjectFilesystem filesystem=context.getProjectFilesystem();
  if (filesystem.exists(pathToZipFile)) {
    context.postEvent(ConsoleEvent.severe("String_Node_Str",pathToZipFile));
    return 1;
  }
  try (BufferedOutputStream baseOut=new BufferedOutputStream(filesystem.newFileOutputStream(pathToZipFile));final CustomZipOutputStream out=ZipOutputStreams.newOutputStream(baseOut,OVERWRITE_EXISTING)){
    final FileVisitor<Path> pathFileVisitor=new SimpleFileVisitor<Path>(){
      @Override public FileVisitResult visitFile(      Path file,      BasicFileAttributes attributes) throws IOException {
        if (!paths.isEmpty() && !paths.contains(file)) {
          return FileVisitResult.CONTINUE;
        }
        Path relativePath=junkPaths ? file.getFileName() : baseDir.relativize(file);
        String entryName=MorePaths.pathWithUnixSeparators(relativePath);
        CustomZipEntry entry=new CustomZipEntry(entryName);
        entry.setTime(attributes.lastModifiedTime().toMillis());
        entry.setSize(attributes.size());
        entry.setCompressionLevel(compressionLevel);
        out.putNextEntry(entry);
        Files.copy(filesystem.resolve(file),out);
        out.closeEntry();
        return FileVisitResult.CONTINUE;
      }
    }
;
    filesystem.walkRelativeFileTree(baseDir,pathFileVisitor);
  }
 catch (  IOException e) {
    context.logError(e,"String_Node_Str",pathToZipFile);
    return 1;
  }
  return 0;
}
Program: 53232
Project: 53232
Buggy source:
public @Nullable String getSuperClassName(){
  return superClassName;
}

Fixed version (ground truth):
@Nullable public String getSuperClassName(){
  return superClassName;
}
Program: 53233
Project: 53233
Buggy source:
public @Nullable String getRawSuperParams(){
  return rawSuperParams;
}

Fixed version (ground truth):
@Nullable public String getRawSuperParams(){
  return rawSuperParams;
}
Program: 53234
Project: 53234
Buggy source:
public @Nullable String getJsonProperty(){
  return jsonProperty;
}

Fixed version (ground truth):
@Nullable public String getJsonProperty(){
  return jsonProperty;
}
Program: 53235
Project: 53235
Buggy source:
public @Nullable String getVisibility(){
  return visibility;
}

Fixed version (ground truth):
@Nullable public String getVisibility(){
  return visibility;
}
Program: 53236
Project: 53236
Buggy source:
public @Nullable String getDefaultValue(){
  return defaultValue;
}

Fixed version (ground truth):
@Nullable public String getDefaultValue(){
  return defaultValue;
}