Program: 145427
Project: 145427
Buggy source:
/** 
 * Queries some source for data, according to supplied parameters values. It queries data using flow provider installed on this rowset instance. It fires RowsetRequeriedEvent event. Call to refresh() will uninstall any installed filter and invalidate other filters, have been created on this rowset.
 * @param aParams Parameters values, ordered with some unknown criteria.
 * @see Parameters
 */
public Cancellable refresh(Parameters aParams,final Callback<Rowset,String> aCallback) throws Exception {
  if (flow != null) {
    if (rowsetChangeSupport.fireWillRequeryEvent()) {
      rowsetChangeSupport.fireBeforeRequery();
      if (aCallback != null) {
        return flow.refresh(aParams,new CallbackAdapter<Rowset,String>(){
          @Override protected void doWork(          Rowset aRowset) throws Exception {
            if (aRowset != null) {
              if (activeFilter != null && activeFilter.isApplied()) {
                activeFilter.deactivate();
                activeFilter=null;
              }
              if (fields == null) {
                setFields(aRowset.getFields());
              }
              List<Row> rows=aRowset.getCurrent();
              aRowset.setCurrent(new ArrayList<Row>());
              aRowset.currentToOriginal();
              setCurrent(rows);
              currentToOriginal();
              invalidateFilters();
              if (!current.isEmpty()) {
                currentRowPos=1;
              }
              rowsetChangeSupport.fireRequeriedEvent();
              aCallback.onSuccess(Rowset.this);
            }
 else {
              throw new FlowProviderFailedException(BAD_FLOW_PROVIDER_RESULT_MSG);
            }
          }
          @Override public void onFailure(          String reason){
            if (reason == null)             reason="String_Node_Str";
            rowsetChangeSupport.fireNetErrorEvent(reason);
            aCallback.onFailure(reason);
          }
        }
);
      }
 else {
      }
    }
    return null;
  }
 else {
    throw new MissingFlowProviderException();
  }
}

Fixed version (ground truth):
/** 
 * Queries some source for data, according to supplied parameters values. It queries data using flow provider installed on this rowset instance. It fires RowsetRequeriedEvent event. Call to refresh() will uninstall any installed filter and invalidate other filters, have been created on this rowset.
 * @param aParams Parameters values, ordered with some unknown criteria.
 * @see Parameters
 */
public Cancellable refresh(Parameters aParams,final Callback<Rowset,String> aCallback) throws Exception {
  if (flow != null) {
    if (rowsetChangeSupport.fireWillRequeryEvent()) {
      rowsetChangeSupport.fireBeforeRequery();
      return flow.refresh(aParams,new CallbackAdapter<Rowset,String>(){
        @Override protected void doWork(        Rowset aRowset) throws Exception {
          if (aRowset != null) {
            if (activeFilter != null && activeFilter.isApplied()) {
              activeFilter.deactivate();
              activeFilter=null;
            }
            if (fields == null) {
              setFields(aRowset.getFields());
            }
            List<Row> rows=aRowset.getCurrent();
            aRowset.setCurrent(new ArrayList<Row>());
            aRowset.currentToOriginal();
            setCurrent(rows);
            currentToOriginal();
            invalidateFilters();
            if (!current.isEmpty()) {
              currentRowPos=1;
            }
            rowsetChangeSupport.fireRequeriedEvent();
            if (aCallback != null) {
              aCallback.onSuccess(Rowset.this);
            }
          }
 else {
            throw new FlowProviderFailedException(BAD_FLOW_PROVIDER_RESULT_MSG);
          }
        }
        @Override public void onFailure(        String reason){
          if (reason == null)           reason="String_Node_Str";
          rowsetChangeSupport.fireNetErrorEvent(reason);
          if (aCallback != null) {
            aCallback.onFailure(reason);
          }
        }
      }
);
    }
    return null;
  }
 else {
    throw new MissingFlowProviderException();
  }
}