nus-yam/ex-repair huggingface dataset:
Program: 195024
Project: 195024
Buggy source:
private void setVersion(int version){
  mVersion=version;
  getGeofenceHardwareSink().setVersion(version);
}

Fixed version (ground truth):
private void setVersion(int version){
  mVersion=version;
  if (mGeofenceHardwareSink != null) {
    mGeofenceHardwareSink.setVersion(version);
  }
}
Program: 195025
Project: 195025
Buggy source:
private GeofenceHardwareImpl getGeofenceHardwareSink(){
  if (mGeofenceHardwareSink == null) {
    mGeofenceHardwareSink=GeofenceHardwareImpl.getInstance(mContext);
  }
  return mGeofenceHardwareSink;
}

Fixed version (ground truth):
private GeofenceHardwareImpl getGeofenceHardwareSink(){
  if (mGeofenceHardwareSink == null) {
    mGeofenceHardwareSink=GeofenceHardwareImpl.getInstance(mContext);
    mGeofenceHardwareSink.setVersion(mVersion);
  }
  return mGeofenceHardwareSink;
}
Program: 195026
Project: 195026
Buggy source:
private void setVersion(int version){
  mVersion=version;
  getGeofenceHardwareSink().setVersion(version);
}

Fixed version (ground truth):
private void setVersion(int version){
  mVersion=version;
  if (mGeofenceHardwareSink != null) {
    mGeofenceHardwareSink.setVersion(version);
  }
}
Program: 195027
Project: 195027
Buggy source:
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.getLatestRunTimeElapsed() >= SystemClock.elapsedRealtime();
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}

Fixed version (ground truth):
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.hasDeadlineConstraint() && (job.getLatestRunTimeElapsed() < SystemClock.elapsedRealtime());
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}
Program: 195028
Project: 195028
Buggy source:
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.getLatestRunTimeElapsed() >= SystemClock.elapsedRealtime();
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      mVerb=VERB_FINISHED;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}

Fixed version (ground truth):
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.hasDeadlineConstraint() && (job.getLatestRunTimeElapsed() < SystemClock.elapsedRealtime());
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      mVerb=VERB_FINISHED;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}
Program: 195029
Project: 195029
Buggy source:
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.getLatestRunTimeElapsed() >= SystemClock.elapsedRealtime();
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      mVerb=VERB_FINISHED;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}

Fixed version (ground truth):
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.hasDeadlineConstraint() && (job.getLatestRunTimeElapsed() < SystemClock.elapsedRealtime());
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      mVerb=VERB_FINISHED;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}
Program: 195030
Project: 195030
Buggy source:
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.getLatestRunTimeElapsed() >= SystemClock.elapsedRealtime();
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}

Fixed version (ground truth):
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.hasDeadlineConstraint() && (job.getLatestRunTimeElapsed() < SystemClock.elapsedRealtime());
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}
Program: 195031
Project: 195031
Buggy source:
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.getLatestRunTimeElapsed() >= SystemClock.elapsedRealtime();
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}

Fixed version (ground truth):
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.hasDeadlineConstraint() && (job.getLatestRunTimeElapsed() < SystemClock.elapsedRealtime());
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}
Program: 195032
Project: 195032
Buggy source:
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.getLatestRunTimeElapsed() >= SystemClock.elapsedRealtime();
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}

Fixed version (ground truth):
/** 
 * Give a job to this context for execution. Callers must first check   {@link #isAvailable()}to make sure this is a valid context.
 * @param job The status of the job that we are going to run.
 * @return True if the job is valid and is running. False if the job cannot be executed.
 */
boolean executeRunnableJob(JobStatus job){
synchronized (mLock) {
    if (!mAvailable) {
      Slog.e(TAG,"String_Node_Str");
      return false;
    }
    mRunningJob=job;
    final boolean isDeadlineExpired=job.hasDeadlineConstraint() && (job.getLatestRunTimeElapsed() < SystemClock.elapsedRealtime());
    mParams=new JobParameters(this,job.getJobId(),job.getExtras(),isDeadlineExpired);
    mExecutionStartTimeElapsed=SystemClock.elapsedRealtime();
    mVerb=VERB_BINDING;
    scheduleOpTimeOut();
    final Intent intent=new Intent().setComponent(job.getServiceComponent());
    boolean binding=mContext.bindServiceAsUser(intent,this,Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND,new UserHandle(job.getUserId()));
    if (!binding) {
      if (DEBUG) {
        Slog.d(TAG,job.getServiceComponent().getShortClassName() + "String_Node_Str");
      }
      mRunningJob=null;
      mParams=null;
      mExecutionStartTimeElapsed=0L;
      removeOpTimeOut();
      return false;
    }
    try {
      mBatteryStats.noteJobStart(job.getName(),job.getUid());
    }
 catch (    RemoteException e) {
    }
    mAvailable=false;
    return true;
  }
}
Program: 195033
Project: 195033
Buggy source:
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}

Fixed version (ground truth):
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_16:
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}
Program: 195034
Project: 195034
Buggy source:
public static Element F16_3(RenderScript rs){
  if (rs.mElement_FLOAT_3 == null) {
    rs.mElement_FLOAT_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}

Fixed version (ground truth):
public static Element F16_3(RenderScript rs){
  if (rs.mElement_HALF_3 == null) {
    rs.mElement_HALF_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}
Program: 195035
Project: 195035
Buggy source:
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}

Fixed version (ground truth):
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_16:
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}
Program: 195036
Project: 195036
Buggy source:
public static Element F16_3(RenderScript rs){
  if (rs.mElement_FLOAT_3 == null) {
    rs.mElement_FLOAT_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}

Fixed version (ground truth):
public static Element F16_3(RenderScript rs){
  if (rs.mElement_HALF_3 == null) {
    rs.mElement_HALF_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}
Program: 195037
Project: 195037
Buggy source:
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}

Fixed version (ground truth):
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_16:
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}
Program: 195038
Project: 195038
Buggy source:
public static Element F16_3(RenderScript rs){
  if (rs.mElement_FLOAT_3 == null) {
    rs.mElement_FLOAT_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}

Fixed version (ground truth):
public static Element F16_3(RenderScript rs){
  if (rs.mElement_HALF_3 == null) {
    rs.mElement_HALF_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}
Program: 195039
Project: 195039
Buggy source:
private int getWordStart(int offset){
  int retOffset=getWordIteratorWithText().prevBoundary(offset);
  if (isPunctBoundaryBehind(retOffset,true)) {
    retOffset=getWordIteratorWithText().prevBoundary(retOffset);
    while (!isPunctBoundaryBehind(retOffset,false) && retOffset != BreakIterator.DONE) {
      retOffset=getWordIteratorWithText().prevBoundary(retOffset);
    }
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}

Fixed version (ground truth):
private int getWordStart(int offset){
  int retOffset=getWordIteratorWithText().prevBoundary(offset);
  if (getWordIteratorWithText().isOnPunctuation(retOffset)) {
    retOffset=getWordIteratorWithText().getPunctuationBeginning(offset);
  }
 else {
    retOffset=getWordIteratorWithText().getBeginning(offset);
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}
Program: 195040
Project: 195040
Buggy source:
private int getWordEnd(int offset){
  int retOffset=getWordIteratorWithText().nextBoundary(offset);
  if (isPunctBoundaryForward(retOffset,true)) {
    retOffset=getWordIteratorWithText().nextBoundary(retOffset);
    while (!isPunctBoundaryForward(retOffset,false) && retOffset != BreakIterator.DONE) {
      retOffset=getWordIteratorWithText().nextBoundary(retOffset);
    }
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}

Fixed version (ground truth):
private int getWordEnd(int offset){
  int retOffset=getWordIteratorWithText().nextBoundary(offset);
  if (getWordIteratorWithText().isAfterPunctuation(retOffset)) {
    retOffset=getWordIteratorWithText().getPunctuationEnd(offset);
  }
 else {
    retOffset=getWordIteratorWithText().getEnd(offset);
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}
Program: 195041
Project: 195041
Buggy source:
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}

Fixed version (ground truth):
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_16:
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}
Program: 195042
Project: 195042
Buggy source:
public static Element F16_3(RenderScript rs){
  if (rs.mElement_FLOAT_3 == null) {
    rs.mElement_FLOAT_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}

Fixed version (ground truth):
public static Element F16_3(RenderScript rs){
  if (rs.mElement_HALF_3 == null) {
    rs.mElement_HALF_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}
Program: 195043
Project: 195043
Buggy source:
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}

Fixed version (ground truth):
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_16:
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}
Program: 195044
Project: 195044
Buggy source:
public static Element F16_3(RenderScript rs){
  if (rs.mElement_FLOAT_3 == null) {
    rs.mElement_FLOAT_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}

Fixed version (ground truth):
public static Element F16_3(RenderScript rs){
  if (rs.mElement_HALF_3 == null) {
    rs.mElement_HALF_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}
Program: 195045
Project: 195045
Buggy source:
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}

Fixed version (ground truth):
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_16:
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}
Program: 195046
Project: 195046
Buggy source:
/** 
 * @hide
 */
public static Element F16_3(RenderScript rs){
  if (rs.mElement_FLOAT_3 == null) {
    rs.mElement_FLOAT_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}

Fixed version (ground truth):
/** 
 * @hide
 */
public static Element F16_3(RenderScript rs){
  if (rs.mElement_HALF_3 == null) {
    rs.mElement_HALF_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}
Program: 195047
Project: 195047
Buggy source:
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}

Fixed version (ground truth):
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_16:
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}
Program: 195048
Project: 195048
Buggy source:
/** 
 * @hide
 */
public static Element F16_3(RenderScript rs){
  if (rs.mElement_FLOAT_3 == null) {
    rs.mElement_FLOAT_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}

Fixed version (ground truth):
/** 
 * @hide
 */
public static Element F16_3(RenderScript rs){
  if (rs.mElement_HALF_3 == null) {
    rs.mElement_HALF_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}
Program: 195049
Project: 195049
Buggy source:
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}

Fixed version (ground truth):
/** 
 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
 * @param rs The context associated with the new Element.
 * @param dt The DataType for the new Element.
 * @param size Vector size for the new Element.  Range 2-4 inclusivesupported.
 * @return Element
 */
public static Element createVector(RenderScript rs,DataType dt,int size){
  if (size < 2 || size > 4) {
    throw new RSIllegalArgumentException("String_Node_Str");
  }
switch (dt) {
case FLOAT_16:
case FLOAT_32:
case FLOAT_64:
case SIGNED_8:
case SIGNED_16:
case SIGNED_32:
case SIGNED_64:
case UNSIGNED_8:
case UNSIGNED_16:
case UNSIGNED_32:
case UNSIGNED_64:
case BOOLEAN:
{
      DataKind dk=DataKind.USER;
      boolean norm=false;
      long id=rs.nElementCreate(dt.mID,dk.mID,norm,size);
      return new Element(id,rs,dt,dk,norm,size);
    }
default :
{
    throw new RSIllegalArgumentException("String_Node_Str" + "String_Node_Str");
  }
}
}
Program: 195050
Project: 195050
Buggy source:
public static Element F16_3(RenderScript rs){
  if (rs.mElement_FLOAT_3 == null) {
    rs.mElement_FLOAT_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}

Fixed version (ground truth):
public static Element F16_3(RenderScript rs){
  if (rs.mElement_HALF_3 == null) {
    rs.mElement_HALF_3=createVector(rs,DataType.FLOAT_16,3);
  }
  return rs.mElement_HALF_3;
}
Program: 195051
Project: 195051
Buggy source:
private int getWordStart(int offset){
  int retOffset=getWordIteratorWithText().prevBoundary(offset);
  if (isPunctBoundaryBehind(retOffset,true)) {
    retOffset=getWordIteratorWithText().prevBoundary(retOffset);
    while (!isPunctBoundaryBehind(retOffset,false) && retOffset != BreakIterator.DONE) {
      retOffset=getWordIteratorWithText().prevBoundary(retOffset);
    }
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}

Fixed version (ground truth):
private int getWordStart(int offset){
  int retOffset=getWordIteratorWithText().prevBoundary(offset);
  if (getWordIteratorWithText().isOnPunctuation(retOffset)) {
    retOffset=getWordIteratorWithText().getPunctuationBeginning(offset);
  }
 else {
    retOffset=getWordIteratorWithText().getBeginning(offset);
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}
Program: 195052
Project: 195052
Buggy source:
private int getWordEnd(int offset){
  int retOffset=getWordIteratorWithText().nextBoundary(offset);
  if (isPunctBoundaryForward(retOffset,true)) {
    retOffset=getWordIteratorWithText().nextBoundary(retOffset);
    while (!isPunctBoundaryForward(retOffset,false) && retOffset != BreakIterator.DONE) {
      retOffset=getWordIteratorWithText().nextBoundary(retOffset);
    }
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}

Fixed version (ground truth):
private int getWordEnd(int offset){
  int retOffset=getWordIteratorWithText().nextBoundary(offset);
  if (getWordIteratorWithText().isAfterPunctuation(retOffset)) {
    retOffset=getWordIteratorWithText().getPunctuationEnd(offset);
  }
 else {
    retOffset=getWordIteratorWithText().getEnd(offset);
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}
Program: 195053
Project: 195053
Buggy source:
private int getWordStart(int offset){
  int retOffset=getWordIteratorWithText().prevBoundary(offset);
  if (isPunctBoundaryBehind(retOffset,true)) {
    retOffset=getWordIteratorWithText().prevBoundary(retOffset);
    while (!isPunctBoundaryBehind(retOffset,false) && retOffset != BreakIterator.DONE) {
      retOffset=getWordIteratorWithText().prevBoundary(retOffset);
    }
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}

Fixed version (ground truth):
private int getWordStart(int offset){
  int retOffset=getWordIteratorWithText().prevBoundary(offset);
  if (getWordIteratorWithText().isOnPunctuation(retOffset)) {
    retOffset=getWordIteratorWithText().getPunctuationBeginning(offset);
  }
 else {
    retOffset=getWordIteratorWithText().getBeginning(offset);
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}
Program: 195054
Project: 195054
Buggy source:
private int getWordEnd(int offset){
  int retOffset=getWordIteratorWithText().nextBoundary(offset);
  if (isPunctBoundaryForward(retOffset,true)) {
    retOffset=getWordIteratorWithText().nextBoundary(retOffset);
    while (!isPunctBoundaryForward(retOffset,false) && retOffset != BreakIterator.DONE) {
      retOffset=getWordIteratorWithText().nextBoundary(retOffset);
    }
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}

Fixed version (ground truth):
private int getWordEnd(int offset){
  int retOffset=getWordIteratorWithText().nextBoundary(offset);
  if (getWordIteratorWithText().isAfterPunctuation(retOffset)) {
    retOffset=getWordIteratorWithText().getPunctuationEnd(offset);
  }
 else {
    retOffset=getWordIteratorWithText().getEnd(offset);
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}
Program: 195055
Project: 195055
Buggy source:
private int getWordStart(int offset){
  int retOffset=getWordIteratorWithText().prevBoundary(offset);
  if (isPunctBoundaryBehind(retOffset,true)) {
    retOffset=getWordIteratorWithText().prevBoundary(retOffset);
    while (!isPunctBoundaryBehind(retOffset,false) && retOffset != BreakIterator.DONE) {
      retOffset=getWordIteratorWithText().prevBoundary(retOffset);
    }
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}

Fixed version (ground truth):
private int getWordStart(int offset){
  int retOffset=getWordIteratorWithText().prevBoundary(offset);
  if (getWordIteratorWithText().isOnPunctuation(retOffset)) {
    retOffset=getWordIteratorWithText().getPunctuationBeginning(offset);
  }
 else {
    retOffset=getWordIteratorWithText().getBeginning(offset);
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}
Program: 195056
Project: 195056
Buggy source:
private int getWordEnd(int offset){
  int retOffset=getWordIteratorWithText().nextBoundary(offset);
  if (isPunctBoundaryForward(retOffset,true)) {
    retOffset=getWordIteratorWithText().nextBoundary(retOffset);
    while (!isPunctBoundaryForward(retOffset,false) && retOffset != BreakIterator.DONE) {
      retOffset=getWordIteratorWithText().nextBoundary(retOffset);
    }
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}

Fixed version (ground truth):
private int getWordEnd(int offset){
  int retOffset=getWordIteratorWithText().nextBoundary(offset);
  if (getWordIteratorWithText().isAfterPunctuation(retOffset)) {
    retOffset=getWordIteratorWithText().getPunctuationEnd(offset);
  }
 else {
    retOffset=getWordIteratorWithText().getEnd(offset);
  }
  if (retOffset == BreakIterator.DONE) {
    return offset;
  }
  return retOffset;
}