Program: 145474
Project: 145474
Buggy source:
public boolean bindQueryParameters() throws Exception {
  Parameters selfParameters=getQuery().getParameters();
  for (int i=1; i <= selfParameters.getFieldsCount(); i++) {
    Parameter p=selfParameters.get(i);
    boolean oldModified=p.isModified();
    p.setValue(ScriptUtils.js2Java(p.getValue()));
    p.setModified(oldModified);
  }
  boolean parametersModified=false;
  Set<Relation<E>> inRels=getInRelations();
  if (inRels != null && !inRels.isEmpty()) {
    for (    Relation<E> relation : inRels) {
      if (relation != null && relation.isRightParameter()) {
        E leftEntity=relation.getLeftEntity();
        if (leftEntity != null) {
          Object pValue=null;
          if (relation.isLeftField()) {
            Rowset leftRowset=leftEntity.getRowset();
            if (leftRowset != null && !leftRowset.isEmpty() && !leftRowset.isBeforeFirst() && !leftRowset.isAfterLast()) {
              try {
                pValue=leftRowset.getObject(leftRowset.getFields().find(relation.getLeftField().getName()));
              }
 catch (              InvalidColIndexException|InvalidCursorPositionException ex) {
                pValue=RowsetUtils.UNDEFINED_SQL_VALUE;
                Logger.getLogger(Entity.class.getName()).log(Level.SEVERE,"String_Node_Str" + relation.getRightParameter() + "String_Node_Str"+ getTitle()+ "String_Node_Str"+ String.valueOf(getEntityId())+ "String_Node_Str",ex);
              }
            }
 else {
              pValue=RowsetUtils.UNDEFINED_SQL_VALUE;
            }
          }
 else {
            Parameter leftParameter=relation.getLeftParameter();
            if (leftParameter != null) {
              pValue=leftParameter.getValue();
              if (pValue == null) {
                pValue=leftParameter.getDefaultValue();
              }
            }
 else {
              Logger.getLogger(Entity.class.getName()).log(Level.SEVERE,"String_Node_Str",new Object[]{getTitle(),String.valueOf(getEntityId())});
            }
          }
          Parameter selfPm=relation.getRightParameter();
          if (selfPm != null) {
            Object selfValue=selfPm.getValue();
            if (!SQLUtils.isJdbcEqual(selfValue,pValue)) {
              selfPm.setValue(pValue);
            }
          }
        }
 else {
          Logger.getLogger(Entity.class.getName()).log(Level.SEVERE,"String_Node_Str");
        }
      }
    }
  }
  for (int i=1; i <= selfParameters.getFieldsCount(); i++) {
    Parameter param=(Parameter)selfParameters.get(i);
    if (param.isModified()) {
      parametersModified=true;
      param.setModified(false);
    }
  }
  return parametersModified;
}

Fixed version (ground truth):
public boolean bindQueryParameters() throws Exception {
  Parameters selfParameters=getQuery().getParameters();
  for (int i=1; i <= selfParameters.getFieldsCount(); i++) {
    Parameter p=selfParameters.get(i);
    boolean oldModified=p.isModified();
    p.setValue(ScriptUtils.js2Java(p.getValue()));
    p.setModified(oldModified);
  }
  boolean parametersModified=false;
  Set<Relation<E>> inRels=getInRelations();
  if (inRels != null && !inRels.isEmpty()) {
    for (    Relation<E> relation : inRels) {
      if (relation != null && relation.isRightParameter()) {
        E leftEntity=relation.getLeftEntity();
        if (leftEntity != null) {
          Object pValue=null;
          if (relation.isLeftField()) {
            Rowset leftRowset=leftEntity.getRowset();
            if (leftRowset != null && !leftRowset.isEmpty() && !leftRowset.isBeforeFirst() && !leftRowset.isAfterLast()) {
              try {
                pValue=leftRowset.getObject(leftRowset.getFields().find(relation.getLeftField().getName()));
              }
 catch (              InvalidColIndexException|InvalidCursorPositionException ex) {
                pValue=RowsetUtils.UNDEFINED_SQL_VALUE;
                Logger.getLogger(Entity.class.getName()).log(Level.SEVERE,"String_Node_Str" + relation.getRightParameter() + "String_Node_Str"+ getTitle()+ "String_Node_Str"+ String.valueOf(getEntityId())+ "String_Node_Str",ex);
              }
            }
 else {
              pValue=RowsetUtils.UNDEFINED_SQL_VALUE;
            }
          }
 else {
            Parameter leftParameter=relation.getLeftParameter();
            if (leftParameter != null) {
              pValue=leftParameter.getValue();
              pValue=ScriptUtils.js2Java(pValue);
              if (pValue == null) {
                pValue=leftParameter.getDefaultValue();
              }
            }
 else {
              Logger.getLogger(Entity.class.getName()).log(Level.SEVERE,"String_Node_Str",new Object[]{getTitle(),String.valueOf(getEntityId())});
            }
          }
          Parameter selfPm=relation.getRightParameter();
          if (selfPm != null) {
            Object selfValue=selfPm.getValue();
            if (!SQLUtils.isJdbcEqual(selfValue,pValue)) {
              selfPm.setValue(pValue);
            }
          }
        }
 else {
          Logger.getLogger(Entity.class.getName()).log(Level.SEVERE,"String_Node_Str");
        }
      }
    }
  }
  for (int i=1; i <= selfParameters.getFieldsCount(); i++) {
    Parameter param=(Parameter)selfParameters.get(i);
    if (param.isModified()) {
      parametersModified=true;
      param.setModified(false);
    }
  }
  return parametersModified;
}