nus-yam/ex-repair huggingface dataset:
Program: 151494
Project: 151494
Buggy source:
@Override public DependencyMetadata resolveDependencyMetadata(final DependencyQuery query){
  try {
    if (Strings.isNullOrEmpty(query.getCoordinate().getVersion())) {
      throw new IllegalArgumentException("String_Node_Str");
    }
    RepositorySystem system=container.getRepositorySystem();
    Settings settings=container.getSettings();
    MavenRepositorySystemSession session=container.setupRepoSession(system,settings);
    Artifact artifact=coordinateToMavenArtifact(query.getCoordinate());
    List<RemoteRepository> mavenRepositories=getRemoteRepositories(query,settings);
    ArtifactDescriptorRequest ar=new ArtifactDescriptorRequest(artifact,mavenRepositories,null);
    ArtifactDescriptorResult results=system.readArtifactDescriptor(session,ar);
    Artifact a=results.getArtifact();
    Dependency d=DependencyBuilder.create().setArtifactId(a.getArtifactId()).setGroupId(a.getGroupId()).setVersion(a.getBaseVersion());
    return new DependencyMetadataImpl(d,results);
  }
 catch (  Exception e) {
    throw new DependencyException("String_Node_Str" + query + "String_Node_Str",e);
  }
}

Fixed version (ground truth):
@Override public DependencyMetadata resolveDependencyMetadata(final DependencyQuery query){
  try {
    if (Strings.isNullOrEmpty(query.getCoordinate().getVersion())) {
      throw new IllegalArgumentException("String_Node_Str");
    }
    RepositorySystem system=container.getRepositorySystem();
    Settings settings=container.getSettings();
    MavenRepositorySystemSession session=container.setupRepoSession(system,settings);
    Artifact artifact=MavenConvertUtils.coordinateToMavenArtifact(query.getCoordinate());
    List<RemoteRepository> mavenRepositories=MavenRepositories.getRemoteRepositories(container,settings,query);
    ArtifactDescriptorRequest ar=new ArtifactDescriptorRequest(artifact,mavenRepositories,null);
    ArtifactDescriptorResult results=system.readArtifactDescriptor(session,ar);
    Artifact a=results.getArtifact();
    Dependency d=DependencyBuilder.create().setArtifactId(a.getArtifactId()).setGroupId(a.getGroupId()).setVersion(a.getBaseVersion());
    return new DependencyMetadataImpl(d,results);
  }
 catch (  Exception e) {
    throw new DependencyException("String_Node_Str" + query + "String_Node_Str",e);
  }
}
Program: 151495
Project: 151495
Buggy source:
/** 
 * Returns the versions of a specific artifact
 * @param query
 * @return
 */
VersionRangeResult getVersions(DependencyQuery query){
  Coordinate dep=query.getCoordinate();
  try {
    String version=dep.getVersion();
    if (version == null || version.isEmpty()) {
      dep=CoordinateBuilder.create(dep).setVersion("String_Node_Str");
    }
 else     if (!version.matches("String_Node_Str")) {
      dep=CoordinateBuilder.create(dep).setVersion("String_Node_Str" + version + "String_Node_Str");
    }
    RepositorySystem maven=container.getRepositorySystem();
    Settings settings=container.getSettings();
    MavenRepositorySystemSession session=container.setupRepoSession(maven,settings);
    Artifact artifact=coordinateToMavenArtifact(dep);
    List<RemoteRepository> remoteRepos=getRemoteRepositories(query,settings);
    VersionRangeRequest rangeRequest=new VersionRangeRequest(artifact,remoteRepos,null);
    VersionRangeResult rangeResult=maven.resolveVersionRange(session,rangeRequest);
    return rangeResult;
  }
 catch (  Exception e) {
    throw new RuntimeException("String_Node_Str" + dep + "String_Node_Str",e);
  }
}

Fixed version (ground truth):
/** 
 * Returns the versions of a specific artifact
 * @param query
 * @return
 */
VersionRangeResult getVersions(DependencyQuery query){
  Coordinate dep=query.getCoordinate();
  try {
    String version=dep.getVersion();
    if (version == null || version.isEmpty()) {
      dep=CoordinateBuilder.create(dep).setVersion("String_Node_Str");
    }
 else     if (!version.matches("String_Node_Str")) {
      dep=CoordinateBuilder.create(dep).setVersion("String_Node_Str" + version + "String_Node_Str");
    }
    RepositorySystem maven=container.getRepositorySystem();
    Settings settings=container.getSettings();
    MavenRepositorySystemSession session=container.setupRepoSession(maven,settings);
    Artifact artifact=MavenConvertUtils.coordinateToMavenArtifact(dep);
    List<RemoteRepository> remoteRepos=MavenRepositories.getRemoteRepositories(container,settings,query);
    VersionRangeRequest rangeRequest=new VersionRangeRequest(artifact,remoteRepos,null);
    VersionRangeResult rangeResult=maven.resolveVersionRange(session,rangeRequest);
    return rangeResult;
  }
 catch (  Exception e) {
    throw new RuntimeException("String_Node_Str" + dep + "String_Node_Str",e);
  }
}
Program: 151496
Project: 151496
Buggy source:
@Override public Set<Dependency> resolveDependencies(DependencyQuery query){
  Set<Dependency> result=new HashSet<Dependency>();
  Predicate<Dependency> filter=query.getDependencyFilter();
  RepositorySystem system=container.getRepositorySystem();
  Settings settings=container.getSettings();
  MavenRepositorySystemSession session=container.setupRepoSession(system,settings);
  Artifact queryArtifact=coordinateToMavenArtifact(query.getCoordinate());
  List<RemoteRepository> remoteRepos=getRemoteRepositories(query,settings);
  CollectRequest collectRequest=new CollectRequest(new org.sonatype.aether.graph.Dependency(queryArtifact,query.getScopeType()),remoteRepos);
  DependencyRequest request=new DependencyRequest(collectRequest,null);
  DependencyResult artifacts;
  try {
    artifacts=system.resolveDependencies(session,request);
  }
 catch (  NullPointerException e) {
    throw new RuntimeException("String_Node_Str" + query + "String_Node_Str",e);
  }
catch (  DependencyResolutionException e) {
    throw new RuntimeException(e);
  }
  DependencyNode root=artifacts.getRoot();
  for (  DependencyNode node : root.getChildren()) {
    Dependency d=MavenConvertUtils.convertToDependency(factory,node);
    if (filter == null || filter.accept(d)) {
      result.add(d);
    }
  }
  return result;
}

Fixed version (ground truth):
@Override public Set<Dependency> resolveDependencies(DependencyQuery query){
  Set<Dependency> result=new HashSet<Dependency>();
  Predicate<Dependency> filter=query.getDependencyFilter();
  RepositorySystem system=container.getRepositorySystem();
  Settings settings=container.getSettings();
  MavenRepositorySystemSession session=container.setupRepoSession(system,settings);
  Artifact queryArtifact=MavenConvertUtils.coordinateToMavenArtifact(query.getCoordinate());
  List<RemoteRepository> remoteRepos=MavenRepositories.getRemoteRepositories(container,settings,query);
  CollectRequest collectRequest=new CollectRequest(new org.sonatype.aether.graph.Dependency(queryArtifact,query.getScopeType()),remoteRepos);
  DependencyRequest request=new DependencyRequest(collectRequest,null);
  DependencyResult artifacts;
  try {
    artifacts=system.resolveDependencies(session,request);
  }
 catch (  NullPointerException e) {
    throw new RuntimeException("String_Node_Str" + query + "String_Node_Str",e);
  }
catch (  DependencyResolutionException e) {
    throw new RuntimeException(e);
  }
  DependencyNode root=artifacts.getRoot();
  for (  DependencyNode node : root.getChildren()) {
    Dependency d=MavenConvertUtils.convertToDependency(factory,node);
    if (filter == null || filter.accept(d)) {
      result.add(d);
    }
  }
  return result;
}
Program: 151497
Project: 151497
Buggy source:
@Test public void testProjectFacet() throws Exception {
  Project project=projectFactory.createTempProject();
  ConfigurationFacet facet=facetFactory.install(ConfigurationFacet.class,project);
  Assert.assertFalse(facet.getConfigLocation().exists());
  Configuration config=facet.getConfiguration();
  config.setProperty("String_Node_Str","String_Node_Str");
  Assert.assertTrue(facet.getConfigLocation().exists());
}

Fixed version (ground truth):
@Test public void testProjectFacet() throws Exception {
  Project project=projectFactory.createTempProject();
  ConfigurationFacet facet=facetFactory.install(project,ConfigurationFacet.class);
  Assert.assertFalse(facet.getConfigLocation().exists());
  Configuration config=facet.getConfiguration();
  config.setProperty("String_Node_Str","String_Node_Str");
  Assert.assertTrue(facet.getConfigLocation().exists());
}
Program: 151499
Project: 151499
Buggy source:
@Override public void initializeUI(UIBuilder builder) throws Exception {
  arguments.setDefaultValue(Arrays.asList(getMetadata().getName()));
  arguments.setLabel("String_Node_Str");
  arguments.setRequired(false);
  builder.add(arguments);
}

Fixed version (ground truth):
@Override public void initializeUI(UIBuilder builder) throws Exception {
  arguments.setDefaultValue(Arrays.asList(getMetadata().getName()));
  arguments.setLabel("String_Node_Str");
  arguments.setRequired(false);
  arguments.setCompleter(new UICompleter<String>(){
    @Override public Iterable<String> getCompletionProposals(    InputComponent<?,String> input,    String value){
      List<String> manCommands=new ArrayList<String>();
      if (value == null || value.trim().length() < 1) {
        for (        ExportedInstance<UICommand> instance : registry.getExportedInstances(UICommand.class)) {
          manCommands.add(instance.get().getMetadata().getName());
        }
      }
 else {
        String item=Parser.findEscapedSpaceWordCloseToEnd(value.trim());
        for (        ExportedInstance<UICommand> instance : registry.getExportedInstances(UICommand.class)) {
          if (instance.get().getMetadata().getName().startsWith(item))           manCommands.add(instance.get().getMetadata().getName());
        }
      }
      return manCommands;
    }
  }
);
  builder.add(arguments);
}
Program: 151500
Project: 151500
Buggy source:
@Override public void previous() throws Exception {
  if (!canFlipToPreviousPage()) {
    throw new IllegalStateException("String_Node_Str");
  }
  pages.poll();
}

Fixed version (ground truth):
@Override public void previous() throws Exception {
  if (!canFlipToPreviousPage()) {
    throw new IllegalStateException("String_Node_Str");
  }
  pages.removeLast();
}
Program: 151501
Project: 151501
Buggy source:
@Override public void initializeUI(UIBuilder builder) throws Exception {
  Set<AddonId> choices=new HashSet<AddonId>();
  for (  AddonRepository repository : forge.getRepositories()) {
    if (repository instanceof MutableAddonRepository) {
      for (      AddonId id : repository.listEnabled()) {
        choices.add(id);
      }
    }
  }
  addons.setValueChoices(choices);
  Project project=getSelectedProject(builder.getUIContext());
  if (project != null) {
    MetadataFacet facet=project.getFacet(MetadataFacet.class);
    String name=facet.getTopLevelPackage() + facet.getProjectName();
    AddonId selectedAddonId=AddonId.from(name,facet.getProjectVersion());
    if (choices.contains(selectedAddonId)) {
      addons.setDefaultValue(Arrays.asList(selectedAddonId));
    }
  }
  builder.add(addons);
}

Fixed version (ground truth):
@Override public void initializeUI(UIBuilder builder) throws Exception {
  Set<AddonId> choices=new HashSet<AddonId>();
  for (  AddonRepository repository : forge.getRepositories()) {
    if (repository instanceof MutableAddonRepository) {
      for (      AddonId id : repository.listEnabled()) {
        choices.add(id);
      }
    }
  }
  addons.setValueChoices(choices);
  Project project=getSelectedProject(builder.getUIContext());
  if (project != null) {
    MetadataFacet facet=project.getFacet(MetadataFacet.class);
    String name=facet.getTopLevelPackage() + "String_Node_Str" + facet.getProjectName();
    AddonId selectedAddonId=AddonId.from(name,facet.getProjectVersion());
    if (choices.contains(selectedAddonId)) {
      addons.setDefaultValue(Collections.singleton(selectedAddonId));
    }
  }
  builder.add(addons);
}
Program: 151502
Project: 151502
Buggy source:
private JPADataSource getDataSource(UIContext context){
  JPADataSource dataSource=new JPADataSource();
  dataSource.setDatabase(dbType.getValue());
  dataSource.setDatabaseURL(databaseURL.getValue());
  dataSource.setUsername(username.getValue());
  dataSource.setPassword(password.getValue());
  dataSource.setProvider((PersistenceProvider)context.getAttribute(PersistenceProvider.class));
  dataSource.setContainer((PersistenceContainer)context.getAttribute(PersistenceContainer.class));
  return dataSource;
}

Fixed version (ground truth):
private JPADataSource getDataSource(UIContext context){
  JPADataSource dataSource=new JPADataSource();
  dataSource.setDatabase(dbType.getValue());
  dataSource.setJndiDataSource(dataSourceName.getValue());
  dataSource.setDatabaseURL(databaseURL.getValue());
  dataSource.setUsername(username.getValue());
  dataSource.setPassword(password.getValue());
  dataSource.setProvider((PersistenceProvider)context.getAttribute(PersistenceProvider.class));
  dataSource.setContainer((PersistenceContainer)context.getAttribute(PersistenceContainer.class));
  return dataSource;
}
Program: 151503
Project: 151503
Buggy source:
public TestShellStreamProvider(){
  stdin=new PipedOutputStream();
  stdout=new ByteArrayOutputStream();
  stderr=new ByteArrayOutputStream();
}

Fixed version (ground truth):
public TestShellStreamProvider(){
  stdin=new PipedOutputStream();
  stdout=new ByteArrayOutputStream();
  stderr=new ByteArrayOutputStream();
  inputStream=null;
}
Program: 151504
Project: 151504
Buggy source:
@Override public String toString(){
  return wrapped.getAnnotated().getBaseType().toString();
}

Fixed version (ground truth):
@Override public String toString(){
  return wrapped.toString();
}
Program: 151505
Project: 151505
Buggy source:
private Object loadObject() throws Exception {
  Object result=null;
  for (  Addon addon : registry.getAddons(AddonFilters.allLoaded())) {
    if (ClassLoaders.containsClass(addon.getClassLoader(),serviceType)) {
      Addons.waitUntilStarted(addon);
      ServiceRegistry serviceRegistry=addon.getServiceRegistry();
      if (serviceRegistry.hasService(serviceType)) {
        ExportedInstance<?> instance=serviceRegistry.getExportedInstance(serviceType);
        Assert.notNull(instance,"String_Node_Str" + serviceType.getName() + "String_Node_Str"+ addon.getId()+ "String_Node_Str");
        if (instance instanceof ExportedInstanceImpl)         result=((ExportedInstanceImpl<?>)instance).get(new LocalServiceInjectionPoint(injectionPoint,serviceType));
 else         result=instance.get();
        break;
      }
    }
  }
  if (result == null) {
    throw new IllegalStateException("String_Node_Str" + serviceType.getName() + "String_Node_Str");
  }
  return result;
}

Fixed version (ground truth):
private Object loadObject() throws Exception {
  Object result=null;
  for (  Addon addon : registry.getAddons(AddonFilters.allLoaded())) {
    if (ClassLoaders.containsClass(addon.getClassLoader(),serviceType)) {
      Addons.waitUntilStarted(addon);
      if (!addon.getStatus().isFailed()) {
        ServiceRegistry serviceRegistry=addon.getServiceRegistry();
        if (serviceRegistry.hasService(serviceType)) {
          ExportedInstance<?> instance=serviceRegistry.getExportedInstance(serviceType);
          Assert.notNull(instance,"String_Node_Str" + serviceType.getName() + "String_Node_Str"+ addon.getId()+ "String_Node_Str");
          if (instance instanceof ExportedInstanceImpl)           result=((ExportedInstanceImpl<?>)instance).get(new LocalServiceInjectionPoint(injectionPoint,serviceType));
 else           result=instance.get();
          break;
        }
      }
    }
  }
  if (result == null) {
    throw new IllegalStateException("String_Node_Str" + serviceType.getName() + "String_Node_Str");
  }
  return result;
}
Program: 151506
Project: 151506
Buggy source:
public abstract InstallRequest install(AddonId id);

Fixed version (ground truth):
/** 
 * Create a new   {@link InstallRequest} for the given {@link AddonId}.
 */
public abstract InstallRequest install(AddonId id);
Program: 151507
Project: 151507
Buggy source:
public abstract boolean disable(AddonId id);

Fixed version (ground truth):
/** 
 * Create a new   {@link DisableRequest} for the given {@link AddonId}.
 */
public abstract DisableRequest disable(AddonId id);
Program: 151508
Project: 151508
Buggy source:
public abstract boolean remove(AddonId id);

Fixed version (ground truth):
/** 
 * Create a new   {@link RemoveRequest} for the given {@link AddonId}.
 */
public abstract RemoveRequest remove(AddonId id);
Program: 151509
Project: 151509
Buggy source:
@Override public boolean disable(AddonId id){
  for (  AddonRepository repository : forge.getRepositories()) {
    if (repository instanceof MutableAddonRepository && repository.isEnabled(id))     return ((MutableAddonRepository)repository).disable(id);
  }
  return false;
}

Fixed version (ground truth):
@Override public DisableRequest disable(AddonId id){
  return new DisableRequestImpl(this,forge,id);
}
Program: 151510
Project: 151510
Buggy source:
@Override public boolean remove(AddonId id){
  for (  AddonRepository repository : forge.getRepositories()) {
    if (repository instanceof MutableAddonRepository && repository.isEnabled(id))     return ((MutableAddonRepository)repository).undeploy(id);
  }
  return false;
}

Fixed version (ground truth):
@Override public RemoveRequest remove(AddonId id){
  return new RemoveRequestImpl(this,forge,id);
}
Program: 151511
Project: 151511
Buggy source:
@Override public Result execute(UIContext context) throws Exception {
  Iterator<AddonId> iterator=addons.getValue().iterator();
  StringBuilder builder=new StringBuilder();
  while (iterator.hasNext()) {
    AddonId addonId=iterator.next();
    builder.append(addonId.toCoordinates());
    manager.disable(addonId);
    manager.remove(addonId);
    if (iterator.hasNext())     builder.append("String_Node_Str");
  }
  return Results.success("String_Node_Str" + builder.toString());
}

Fixed version (ground truth):
@Override public Result execute(UIContext context) throws Exception {
  Iterator<AddonId> iterator=addons.getValue().iterator();
  StringBuilder builder=new StringBuilder();
  while (iterator.hasNext()) {
    AddonId addonId=iterator.next();
    builder.append(addonId.toCoordinates());
    manager.disable(addonId).perform();
    manager.remove(addonId).perform();
    if (iterator.hasNext())     builder.append("String_Node_Str");
  }
  return Results.success("String_Node_Str" + builder.toString());
}
Program: 151512
Project: 151512
Buggy source:
@Override public Result execute(UIContext context) throws Exception {
  Iterator<AddonId> iterator=addons.getValue().iterator();
  StringBuilder builder=new StringBuilder();
  while (iterator.hasNext()) {
    AddonId addonId=iterator.next();
    builder.append(addonId.toCoordinates());
    manager.disable(addonId).perform();
    manager.remove(addonId).perform();
    if (iterator.hasNext())     builder.append("String_Node_Str");
  }
  return Results.success("String_Node_Str" + builder.toString());
}

Fixed version (ground truth):
@Override public Result execute(UIContext context) throws Exception {
  Iterable<AddonId> value=addons.getValue();
  Iterator<AddonId> iterator=value.iterator();
  StringBuilder builder=new StringBuilder();
  while (iterator.hasNext()) {
    AddonId addonId=iterator.next();
    builder.append(addonId.toCoordinates());
    manager.disable(addonId).perform();
    manager.remove(addonId).perform();
    if (iterator.hasNext())     builder.append("String_Node_Str");
  }
  return Results.success("String_Node_Str" + builder.toString());
}
Program: 151513
Project: 151513
Buggy source:
@Override public void start() throws LifecycleException {
  try {
    this.addonDir=File.createTempFile("String_Node_Str","String_Node_Str");
    runnable=new ForgeRunnable(addonDir,ClassLoader.getSystemClassLoader());
    thread=new Thread(runnable,"String_Node_Str");
    System.out.println("String_Node_Str" + addonDir + "String_Node_Str");
    this.repository=AddonRepositoryImpl.forDirectory(runnable.forge,addonDir);
    thread.start();
  }
 catch (  IOException e) {
    throw new LifecycleException("String_Node_Str",e);
  }
catch (  Exception e) {
    throw new LifecycleException("String_Node_Str",e);
  }
}

Fixed version (ground truth):
@Override public void start() throws LifecycleException {
  try {
    this.addonDir=File.createTempFile("String_Node_Str","String_Node_Str");
    runnable=new ForgeRunnable(addonDir,ClassLoader.getSystemClassLoader());
    thread=new Thread(runnable,"String_Node_Str");
    System.out.println("String_Node_Str" + addonDir + "String_Node_Str");
    this.repository=(MutableAddonRepository)runnable.forge.addRepository(AddonRepositoryMode.MUTABLE,addonDir);
    thread.start();
  }
 catch (  IOException e) {
    throw new LifecycleException("String_Node_Str",e);
  }
catch (  Exception e) {
    throw new LifecycleException("String_Node_Str",e);
  }
}
Program: 151514
Project: 151514
Buggy source:
@Override public boolean equals(Object obj){
  if (this == obj)   return true;
  if (obj == null)   return false;
  if (!(obj instanceof AddonId))   return false;
  AddonId other=(AddonId)obj;
  if (name == null) {
    if (other.name != null)     return false;
  }
 else   if (!name.equals(other.name))   return false;
  if (version == null) {
    if (other.version != null)     return false;
  }
 else   if (!version.equals(other.version))   return false;
  return true;
}

Fixed version (ground truth):
@Override public boolean equals(Object obj){
  if (this == obj)   return true;
  if (obj == null)   return false;
  if (!(obj instanceof AddonId))   return false;
  AddonId other=(AddonId)obj;
  if (name == null) {
    if (other.getName() != null)     return false;
  }
 else   if (!name.equals(other.getName()))   return false;
  if (version == null) {
    if (other.getVersion() != null)     return false;
  }
 else   if (!version.equals(other.getVersion()))   return false;
  return true;
}
Program: 151515
Project: 151515
Buggy source:
@Override public boolean equals(Object obj){
  if (this == obj)   return true;
  if (obj == null)   return false;
  if (getClass() != obj.getClass())   return false;
  SingleVersion other=(SingleVersion)obj;
  if (version == null) {
    if (other.version != null)     return false;
  }
 else   if (!version.equals(other.version))   return false;
  return true;
}

Fixed version (ground truth):
@Override public boolean equals(Object obj){
  if (this == obj)   return true;
  if (obj == null)   return false;
  Version other=(Version)obj;
  if (getVersionString() == null) {
    if (other.getVersionString() != null)     return false;
  }
 else   if (!getVersionString().equals(other.getVersionString()))   return false;
  return true;
}
Program: 151516
Project: 151516
Buggy source:
@Deployment(order=3) public static ForgeArchive getDeployment(){
  ForgeArchive archive=ShrinkWrap.create(ForgeArchive.class).addBeansXML();
  return archive;
}

Fixed version (ground truth):
@Deployment(order=5) public static ForgeArchive getDeployment(){
  ForgeArchive archive=ShrinkWrap.create(ForgeArchive.class).addBeansXML();
  return archive;
}
Program: 151517
Project: 151517
Buggy source:
@Deployment(name="String_Node_Str",testable=false,order=1) public static ForgeArchive getDeploymentDep3(){
  ForgeArchive archive=ShrinkWrap.create(ForgeArchive.class).addBeansXML().addAsAddonDependencies(AddonDependencyEntry.create(AddonId.from("String_Node_Str","String_Node_Str")));
  return archive;
}

Fixed version (ground truth):
@Deployment(name="String_Node_Str",testable=false,order=3) public static ForgeArchive getDeploymentDep3(){
  ForgeArchive archive=ShrinkWrap.create(ForgeArchive.class).addBeansXML().addAsAddonDependencies(AddonDependencyEntry.create(AddonId.from("String_Node_Str","String_Node_Str")));
  return archive;
}
Program: 151519
Project: 151519
Buggy source:
@Deployment(name="String_Node_Str",testable=false,order=1) public static ForgeArchive getDeploymentDep4(){
  ForgeArchive archive=ShrinkWrap.create(ForgeArchive.class).addBeansXML();
  return archive;
}

Fixed version (ground truth):
@Deployment(name="String_Node_Str",testable=false,order=4) public static ForgeArchive getDeploymentDep4(){
  ForgeArchive archive=ShrinkWrap.create(ForgeArchive.class).addBeansXML();
  return archive;
}
Program: 151521
Project: 151521
Buggy source:
public AddonTree(LockManager lock){
  this.lock=lock;
  this.root=new AddonImpl(lock,AddonId.from(AddonTree.class.getName(),UUID.randomUUID().toString()));
}

Fixed version (ground truth):
public AddonTree(LockManager lock){
  this.lock=lock;
  this.root=new AddonImpl(lock,AddonId.from("String_Node_Str",UUID.randomUUID().toString()));
}
Program: 151522
Project: 151522
Buggy source:
@Override public boolean equals(Object obj){
  if (this == obj)   return true;
  if (obj == null)   return false;
  if (getClass() != obj.getClass())   return false;
  AddonImpl other=(AddonImpl)obj;
  if (id == null) {
    if (other.id != null)     return false;
  }
 else   if (!id.equals(other.id))   return false;
  return true;
}

Fixed version (ground truth):
@Override public boolean equals(Object obj){
  if (this == obj)   return true;
  if (obj == null)   return false;
  if (!(obj instanceof Addon))   return false;
  AddonImpl other=(AddonImpl)obj;
  if (id == null) {
    if (other.getId() != null)     return false;
  }
 else   if (!id.equals(other.getId()))   return false;
  return true;
}
Program: 151523
Project: 151523
Buggy source:
private AddonImpl loadAddon(AddonId addonId){
  Assert.notNull(addonId,"String_Node_Str");
  AddonImpl addon=null;
  for (  AddonRepository repository : forge.getRepositories()) {
    addon=loadAddonFromRepository(repository,addonId);
    if (addon != null)     break;
  }
  if (addon == null) {
    for (    Addon existing : tree) {
      if (existing.getId().equals(addonId)) {
        addon=(AddonImpl)existing;
        break;
      }
    }
  }
  if (addon == null) {
    addon=new AddonImpl(lock,addonId);
    tree.add(addon);
  }
  return addon;
}

Fixed version (ground truth):
private AddonImpl loadAddon(AddonId addonId){
  Assert.notNull(addonId,"String_Node_Str");
  AddonImpl addon=null;
  for (  Addon existing : tree) {
    if (existing.getId().equals(addonId)) {
      addon=(AddonImpl)existing;
      break;
    }
  }
  if (addon == null) {
    for (    AddonRepository repository : forge.getRepositories()) {
      addon=loadAddonFromRepository(repository,addonId);
      if (addon != null)       break;
    }
  }
 else   if (addon.getStatus().isMissing()) {
    for (    AddonRepository repository : forge.getRepositories()) {
      Addon loaded=loadAddonFromRepository(repository,addonId);
      if (loaded != null && !loaded.getStatus().isMissing())       break;
    }
  }
  if (addon == null) {
    addon=new AddonImpl(lock,addonId);
    tree.add(addon);
  }
  return addon;
}
Program: 151524
Project: 151524
Buggy source:
@Override public Object call() throws Exception {
  manager.fireEvent(new PostStartup());
  return null;
}

Fixed version (ground truth):
@Override public Object call() throws Exception {
  try {
    manager.fireEvent(new PreShutdown());
  }
 catch (  Exception e) {
    logger.log(Level.SEVERE,"String_Node_Str",e);
  }
 finally {
    addon.setStatus(AddonStatus.LOADED);
    if (operation != null)     operation.cancel(true);
  }
  weld.shutdown();
  return null;
}
Program: 151525
Project: 151525
Buggy source:
@Test public void testContainerStartup(){
  Assert.assertEquals(1,TestLifecycleListener.beforeStartTimesCalled);
}

Fixed version (ground truth):
@Test public void testContainerStartup(){
  ForgeImpl impl=(ForgeImpl)forge;
  List<ContainerLifecycleListener> listeners=impl.getRegisteredListeners();
  Assert.assertEquals(1,listeners.size());
  Assert.assertEquals(1,((TestLifecycleListener)listeners.get(0)).beforeStartTimesCalled);
}
Program: 151527
Project: 151527
Buggy source:
private void fireBeforeContainerStartedEvent(ClassLoader loader){
  for (  ContainerLifecycleListener listener : registeredListeners) {
    listener.beforeStart(this);
  }
  for (  ContainerLifecycleListener listener : ServiceLoader.load(ContainerLifecycleListener.class,loader)) {
    listener.beforeStart(this);
  }
  status=ContainerStatus.STARTED;
}

Fixed version (ground truth):
private void fireBeforeContainerStartedEvent(ClassLoader loader){
  for (  ContainerLifecycleListener listener : registeredListeners) {
    listener.beforeStart(this);
  }
  status=ContainerStatus.STARTED;
}
Program: 151528
Project: 151528
Buggy source:
private void fireAfterContainerStoppedEvent(ClassLoader loader){
  for (  ContainerLifecycleListener listener : registeredListeners) {
    listener.afterStop(this);
  }
  for (  ContainerLifecycleListener listener : ServiceLoader.load(ContainerLifecycleListener.class,loader)) {
    listener.afterStop(this);
  }
}

Fixed version (ground truth):
private void fireAfterContainerStoppedEvent(ClassLoader loader){
  for (  ContainerLifecycleListener listener : registeredListeners) {
    listener.afterStop(this);
  }
}
Program: 151529
Project: 151529
Buggy source:
private void fireBeforeContainerStoppedEvent(ClassLoader loader){
  for (  ContainerLifecycleListener listener : registeredListeners) {
    listener.beforeStop(this);
  }
  for (  ContainerLifecycleListener listener : ServiceLoader.load(ContainerLifecycleListener.class,loader)) {
    listener.beforeStop(this);
  }
  status=ContainerStatus.STOPPED;
}

Fixed version (ground truth):
private void fireBeforeContainerStoppedEvent(ClassLoader loader){
  for (  ContainerLifecycleListener listener : registeredListeners) {
    listener.beforeStop(this);
  }
  status=ContainerStatus.STOPPED;
}
Program: 151531
Project: 151531
Buggy source:
@Override public void beforeStart(Forge forge) throws ContainerException {
  StringWriter sw=new StringWriter();
  PrintWriter out=new PrintWriter(sw,true);
  out.println();
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.print("String_Node_Str");
  out.print(forge.getVersion());
  out.print("String_Node_Str");
  out.println();
  logger.info(sw.toString());
}

Fixed version (ground truth):
@Override public void beforeStart(Forge forge) throws ContainerException {
  StringWriter sw=new StringWriter();
  PrintWriter out=new PrintWriter(sw,true);
  out.println();
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.println("String_Node_Str");
  out.print("String_Node_Str");
  out.print(forge.getVersion());
  out.print("String_Node_Str");
  out.println();
  logger.info(sw.toString());
  System.out.println(sw.toString());
}
Program: 151532
Project: 151532
Buggy source:
public void breadthFirst(Visitor<Addon> visitor){
  Queue<Addon> queue=new LinkedList<Addon>();
  Set<Addon> seen=new HashSet<Addon>();
  seen.add(root);
  queue.add(root);
  while (!queue.isEmpty()) {
    Addon addon=queue.remove();
    for (    AddonDependency dep : addon.getDependencies()) {
      Addon dependency=dep.getDependency();
      if (!seen.contains(dependency)) {
        visitor.visit(dependency);
        queue.add(dependency);
      }
    }
  }
}

Fixed version (ground truth):
public void breadthFirst(Visitor<Addon> visitor){
  Queue<Addon> queue=new LinkedList<Addon>();
  Set<Addon> seen=new HashSet<Addon>();
  seen.add(root);
  queue.add(root);
  while (!queue.isEmpty()) {
    Addon addon=queue.remove();
    for (    AddonDependency dep : addon.getDependencies()) {
      Addon dependency=dep.getDependency();
      if (!seen.contains(dependency)) {
        visitor.visit(dependency);
        queue.add(dependency);
        seen.add(dependency);
      }
    }
  }
}
Program: 151533
Project: 151533
Buggy source:
@Override public Void call() throws Exception {
  tree.breadthFirst(new Visitor<Addon>(){
    @Override public void visit(    Addon addon){
      doStop(addon);
    }
  }
);
  List<Runnable> waiting=executor.shutdownNow();
  if (waiting != null && !waiting.isEmpty())   logger.info("String_Node_Str" + waiting.size() + "String_Node_Str");
  return null;
}

Fixed version (ground truth):
@Override public Void call() throws Exception {
  final List<Addon> toStop=new ArrayList<Addon>();
  tree.breadthFirst(new Visitor<Addon>(){
    @Override public void visit(    Addon addon){
      toStop.add(addon);
    }
  }
);
  for (  Addon addon : toStop) {
    doStop(addon);
  }
  List<Runnable> waiting=executor.shutdownNow();
  if (waiting != null && !waiting.isEmpty())   logger.info("String_Node_Str" + waiting.size() + "String_Node_Str");
  return null;
}
Program: 151534
Project: 151534
Buggy source:
public void stopAll(){
  lock.performLocked(LockMode.WRITE,new Callable<Void>(){
    @Override public Void call() throws Exception {
      tree.breadthFirst(new Visitor<Addon>(){
        @Override public void visit(        Addon addon){
          doStop(addon);
        }
      }
);
      List<Runnable> waiting=executor.shutdownNow();
      if (waiting != null && !waiting.isEmpty())       logger.info("String_Node_Str" + waiting.size() + "String_Node_Str");
      return null;
    }
  }
);
}

Fixed version (ground truth):
public void stopAll(){
  lock.performLocked(LockMode.WRITE,new Callable<Void>(){
    @Override public Void call() throws Exception {
      final List<Addon> toStop=new ArrayList<Addon>();
      tree.breadthFirst(new Visitor<Addon>(){
        @Override public void visit(        Addon addon){
          toStop.add(addon);
        }
      }
);
      for (      Addon addon : toStop) {
        doStop(addon);
      }
      List<Runnable> waiting=executor.shutdownNow();
      if (waiting != null && !waiting.isEmpty())       logger.info("String_Node_Str" + waiting.size() + "String_Node_Str");
      return null;
    }
  }
);
}
Program: 151535
Project: 151535
Buggy source:
@Override public void visit(Addon addon){
  doStop(addon);
}

Fixed version (ground truth):
@Override public void visit(Addon addon){
  toStop.add(addon);
}
Program: 151536
Project: 151536
Buggy source:
@Override public void run(){
  forge.getLockManager().performLocked(LockMode.READ,new Callable<Void>(){
    @Override public Void call() throws Exception {
      logger.info("String_Node_Str" + addon.getId() + "String_Node_Str");
      long start=System.currentTimeMillis();
      container=new AddonContainerStartup();
      shutdownCallable=ClassLoaders.executeIn(addon.getClassLoader(),container);
      logger.info("String_Node_Str" + addon.getId() + "String_Node_Str"+ (System.currentTimeMillis() - start)+ "String_Node_Str"+ "String_Node_Str");
      return null;
    }
  }
);
}

Fixed version (ground truth):
@Override public void run(){
  try {
    forge.getLockManager().performLocked(LockMode.READ,new Callable<Void>(){
      @Override public Void call() throws Exception {
        logger.info("String_Node_Str" + addon.getId() + "String_Node_Str");
        long start=System.currentTimeMillis();
        container=new AddonContainerStartup();
        shutdownCallable=ClassLoaders.executeIn(addon.getClassLoader(),container);
        logger.info("String_Node_Str" + addon.getId() + "String_Node_Str"+ (System.currentTimeMillis() - start)+ "String_Node_Str"+ "String_Node_Str");
        return null;
      }
    }
);
  }
 catch (  RuntimeException e) {
    logger.log(Level.SEVERE,"String_Node_Str" + addon.getId(),e);
    throw e;
  }
}
Program: 151537
Project: 151537
Buggy source:
public void shutdown(){
  forge.getLockManager().performLocked(LockMode.READ,new Callable<Void>(){
    @Override public Void call() throws Exception {
      logger.info("String_Node_Str" + addon.getId() + "String_Node_Str");
      long start=System.currentTimeMillis();
      ClassLoaders.executeIn(addon.getClassLoader(),shutdownCallable);
      logger.info("String_Node_Str" + addon.getId() + "String_Node_Str"+ (System.currentTimeMillis() - start)+ "String_Node_Str"+ "String_Node_Str");
      return null;
    }
  }
);
}

Fixed version (ground truth):
public void shutdown(){
  try {
    forge.getLockManager().performLocked(LockMode.READ,new Callable<Void>(){
      @Override public Void call() throws Exception {
        logger.info("String_Node_Str" + addon.getId() + "String_Node_Str");
        long start=System.currentTimeMillis();
        ClassLoaders.executeIn(addon.getClassLoader(),shutdownCallable);
        logger.info("String_Node_Str" + addon.getId() + "String_Node_Str"+ (System.currentTimeMillis() - start)+ "String_Node_Str"+ "String_Node_Str");
        return null;
      }
    }
);
  }
 catch (  RuntimeException e) {
    logger.log(Level.SEVERE,"String_Node_Str" + addon.getId(),e);
    throw e;
  }
}
Program: 151538
Project: 151538
Buggy source:
@Override public void setOrigin(final Project project){
  this.setOrigin(project);
}

Fixed version (ground truth):
@Override public void setOrigin(final Project project){
  super.setOrigin(project);
}
Program: 151539
Project: 151539
Buggy source:
/** 
 * Returns the converted value that matches the input
 * @param input
 * @param value
 * @return
 */
private static Object convertToUIInputValue(final ConverterFactory converterFactory,final InputComponent<?,Object> input,final Object value){
  final Object convertedType;
  Class<Object> sourceType=(Class<Object>)value.getClass();
  Class<Object> targetType=input.getValueType();
  Converter<String,Object> valueConverter=input.getValueConverter();
  if (valueConverter != null) {
    Converter<Object,String> stringConverter=converterFactory.getConverter(sourceType,String.class);
    CompositeConverter compositeConverter=new CompositeConverter(stringConverter,valueConverter);
    convertedType=compositeConverter.convert(value);
  }
 else {
    Converter<Object,Object> converter=converterFactory.getConverter(sourceType,targetType);
    convertedType=converter.convert(value);
  }
  return convertedType;
}

Fixed version (ground truth):
/** 
 * Returns the converted value that matches the input
 * @param input
 * @param value
 * @return
 */
private static Object convertToUIInputValue(final ConverterFactory converterFactory,final InputComponent<?,Object> input,final Object value){
  final Object convertedType;
  Class<Object> sourceType=(Class<Object>)value.getClass();
  Class<Object> targetType=input.getValueType();
  Converter<String,Object> valueConverter=input.getValueConverter();
  if (valueConverter != null) {
    if (value instanceof String) {
      convertedType=valueConverter.convert((String)value);
    }
 else {
      Converter<Object,String> stringConverter=converterFactory.getConverter(sourceType,String.class);
      CompositeConverter compositeConverter=new CompositeConverter(stringConverter,valueConverter);
      convertedType=compositeConverter.convert(value);
    }
  }
 else {
    Converter<Object,Object> converter=converterFactory.getConverter(sourceType,targetType);
    convertedType=converter.convert(value);
  }
  return convertedType;
}
Program: 151540
Project: 151540
Buggy source:
@Override public Set<Dependency> resolveDependencies(DependencyQuery query){
  Set<Dependency> result=new HashSet<Dependency>();
  Predicate<Dependency> filter=query.getDependencyFilter();
  RepositorySystem system=container.getRepositorySystem();
  Settings settings=container.getSettings();
  MavenRepositorySystemSession session=setupRepoSession(system,settings);
  Artifact queryArtifact=coordinateToMavenArtifact(query.getCoordinate());
  List<RemoteRepository> remoteRepos=convertToMavenRepos(query.getDependencyRepositories(),settings);
  remoteRepos.addAll(container.getEnabledRepositoriesFromProfile(settings));
  CollectRequest collectRequest=new CollectRequest(new org.sonatype.aether.graph.Dependency(queryArtifact,query.getScopeType()),remoteRepos);
  DependencyRequest request=new DependencyRequest(collectRequest,null);
  DependencyResult artifacts;
  try {
    artifacts=system.resolveDependencies(session,request);
  }
 catch (  DependencyResolutionException e) {
    throw new RuntimeException(e);
  }
  DependencyNode root=artifacts.getRoot();
  for (  DependencyNode node : root.getChildren()) {
    Dependency d=MavenConvertUtils.convertToDependency(factory,node);
    if (filter == null || filter.accept(d)) {
      result.add(d);
    }
  }
  return result;
}

Fixed version (ground truth):
@Override public Set<Dependency> resolveDependencies(DependencyQuery query){
  Set<Dependency> result=new HashSet<Dependency>();
  Predicate<Dependency> filter=query.getDependencyFilter();
  RepositorySystem system=container.getRepositorySystem();
  Settings settings=container.getSettings();
  MavenRepositorySystemSession session=setupRepoSession(system,settings);
  Artifact queryArtifact=coordinateToMavenArtifact(query.getCoordinate());
  List<RemoteRepository> remoteRepos=convertToMavenRepos(query.getDependencyRepositories(),settings);
  remoteRepos.addAll(container.getEnabledRepositoriesFromProfile(settings));
  CollectRequest collectRequest=new CollectRequest(new org.sonatype.aether.graph.Dependency(queryArtifact,query.getScopeType()),remoteRepos);
  DependencyRequest request=new DependencyRequest(collectRequest,new DependencyFilter(){
    @Override public boolean accept(    DependencyNode node,    List<DependencyNode> parents){
      return true;
    }
  }
);
  DependencyResult artifacts;
  try {
    artifacts=system.resolveDependencies(session,request);
  }
 catch (  NullPointerException e) {
    throw new RuntimeException("String_Node_Str" + query + "String_Node_Str",e);
  }
catch (  DependencyResolutionException e) {
    throw new RuntimeException(e);
  }
  DependencyNode root=artifacts.getRoot();
  for (  DependencyNode node : root.getChildren()) {
    Dependency d=MavenConvertUtils.convertToDependency(factory,node);
    if (filter == null || filter.accept(d)) {
      result.add(d);
    }
  }
  return result;
}
Program: 151541
Project: 151541
Buggy source:
@Test public void testResolveWildcardArtifactId() throws Exception {
  DependencyQuery query=DependencyQueryBuilder.create(CoordinateBuilder.create().setGroupId("String_Node_Str").setClassifier("String_Node_Str"));
  Set<Dependency> coreAddons=resolver.resolveDependencies(query);
  Assert.assertFalse(coreAddons.isEmpty());
}

Fixed version (ground truth):
@Test(expected=RuntimeException.class) public void testResolveWildcardArtifactId() throws Exception {
  DependencyQuery query=DependencyQueryBuilder.create(CoordinateBuilder.create().setGroupId("String_Node_Str").setArtifactId("String_Node_Str").setClassifier("String_Node_Str"));
  Set<Dependency> coreAddons=resolver.resolveDependencies(query);
  Assert.assertFalse(coreAddons.isEmpty());
}
Program: 151542
Project: 151542
Buggy source:
@Override public void initializeUI(UIBuilder builder) throws Exception {
  DependencyQuery query=DependencyQueryBuilder.create(CoordinateBuilder.create().setGroupId("String_Node_Str").setClassifier("String_Node_Str"));
  Set<Dependency> coreAddons=resolver.resolveDependencies(query);
  builder.add(splitApiImpl);
}

Fixed version (ground truth):
@Override public void initializeUI(UIBuilder builder) throws Exception {
  builder.add(splitApiImpl);
}
Program: 151543
Project: 151543
Buggy source:
@Override public UIBuilder add(UIInput<?> input){
  inputs.add(input);
  return this;
}

Fixed version (ground truth):
@Override public UIBuilder add(UIInputComponent<?,?> input){
  inputs.add(input);
  return this;
}
Program: 151544
Project: 151544
Buggy source:
public List<UIInput<?>> getInputs(){
  return inputs;
}

Fixed version (ground truth):
public List<UIInputComponent<?,?>> getInputs(){
  return inputs;
}
Program: 151545
Project: 151545
Buggy source:
public UIInput<?> findInput(String name){
  for (  UIInput<?> input : inputs) {
    if (input.getName().equals(name))     return input;
  }
  return null;
}

Fixed version (ground truth):
public UIInputComponent<?,?> findInput(String name){
  for (  UIInputComponent<?,?> input : inputs) {
    if (input.getName().equals(name))     return input;
  }
  return null;
}
Program: 151546
Project: 151546
Buggy source:
@Override public void addValidationError(UIInput<?> input,String errorMessage){
  inputs.add(input);
}

Fixed version (ground truth):
@Override public void addValidationError(UIInputComponent<?,?> input,String errorMessage){
  inputs.add(input);
}
Program: 151547
Project: 151547
Buggy source:
public static CommandLineParser generateParser(UICommand command,ShellContext context){
  ParserBuilder builder=new ParserBuilder();
  ParameterInt parameter=new ParameterInt(command.getMetadata().getName(),command.getMetadata().getDescription());
  for (  UIInput<?> input : context.getInputs()) {
    if (input.getValueType() == Boolean.class) {
      parameter.addOption(new OptionBuilder().name(input.getName().charAt(0)).longName(input.getName()).hasValue(false).description(input.getLabel()).create());
    }
 else {
      parameter.addOption(new OptionBuilder().name(input.getName().charAt(0)).longName(input.getName()).description(input.getLabel()).create());
    }
  }
  builder.addParameter(parameter);
  return builder.generateParser();
}

Fixed version (ground truth):
public static CommandLineParser generateParser(UICommand command,ShellContext context){
  ParserBuilder builder=new ParserBuilder();
  ParameterInt parameter=new ParameterInt(command.getMetadata().getName(),command.getMetadata().getDescription());
  for (  UIInputComponent<?,?> input : context.getInputs()) {
    if (input.getValueType() == Boolean.class) {
      parameter.addOption(new OptionBuilder().name(input.getName().charAt(0)).longName(input.getName()).hasValue(false).description(input.getLabel()).create());
    }
 else {
      parameter.addOption(new OptionBuilder().name(input.getName().charAt(0)).longName(input.getName()).description(input.getLabel()).create());
    }
  }
  builder.addParameter(parameter);
  return builder.generateParser();
}
Program: 151548
Project: 151548
Buggy source:
public static void populateUIInputs(CommandLine commandLine,ShellContext context){
  for (  UIInput<?> input : context.getInputs()) {
    if (commandLine.hasOption(input.getName())) {
      String value=commandLine.getOptionValue(input.getName());
      if (value == null) {
        if (input.getValueType() == Boolean.class)         value="String_Node_Str";
 else         value="String_Node_Str";
      }
      setInputValue(input,value);
    }
 else     input.setValue(null);
  }
}

Fixed version (ground truth):
public static void populateUIInputs(CommandLine commandLine,ShellContext context){
  for (  UIInputComponent<?,?> input : context.getInputs()) {
    if (commandLine.hasOption(input.getName())) {
      String value=commandLine.getOptionValue(input.getName());
      if (value == null) {
        if (input.getValueType() == Boolean.class)         value="String_Node_Str";
 else         value="String_Node_Str";
      }
      setInputValue(input,value);
    }
 else     input.setValue(null);
  }
}
Program: 151549
Project: 151549
Buggy source:
@SuppressWarnings({"String_Node_Str"}) private static void setInputValue(UIInput<?> input,String value){
  if (input.getValueType() == String.class) {
    ((UIInput<String>)input).setValue(value);
  }
 else   if (input.getValueType() == Boolean.class) {
    ((UIInput<Boolean>)input).setValue(Boolean.parseBoolean(value));
  }
 else   if (input.getValueType() == Integer.class) {
    ((UIInput<Integer>)input).setValue(Integer.parseInt(value));
  }
 else   input.setValue(null);
}

Fixed version (ground truth):
@SuppressWarnings({"String_Node_Str"}) private static void setInputValue(UIInputComponent<?,?> input,String value){
  if (input.getValueType() == String.class) {
    ((UIInput<String>)input).setValue(value);
  }
 else   if (input.getValueType() == Boolean.class) {
    ((UIInput<Boolean>)input).setValue(Boolean.parseBoolean(value));
  }
 else   if (input.getValueType() == Integer.class) {
    ((UIInput<Integer>)input).setValue(Integer.parseInt(value));
  }
 else   input.setValue(null);
}
Program: 151550
Project: 151550
Buggy source:
@Override public UIBuilder add(UIInput<?> input){
  inputs.add(input);
  return this;
}

Fixed version (ground truth):
@Override public UIBuilder add(UIInputComponent<?,?> input){
  inputs.add(input);
  return this;
}