Program: 77431
Project: 77431
Buggy source:
/** 
 * Whether query is running based on the result set of report document or the data set.
 * @param dataEngine
 * @param queryDefn
 * @return true, running on result set
 * @throws DataException
 */
private static boolean runQueryOnRS(DataEngineImpl dataEngine,IQueryDefinition queryDefn) throws DataException {
  String queryResultID=queryDefn.getQueryResultsID();
  String rootQueryResultID=QueryResultIDUtil.get1PartID(queryResultID);
  String parentQueryResultID=null;
  if (rootQueryResultID != null)   parentQueryResultID=QueryResultIDUtil.get2PartID(queryResultID);
 else   rootQueryResultID=queryResultID;
  QueryResultInfo queryResultInfo=new QueryResultInfo(rootQueryResultID,parentQueryResultID,null,null,-1);
  RDLoad rdLoad=RDUtil.newLoad(dataEngine.getContext(),queryResultInfo);
  boolean runningOnRS=GroupDefnUtil.isEqualGroups(queryDefn.getGroups(),rdLoad.loadGroupDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE));
  if (runningOnRS == false)   return false;
  runningOnRS=!hasTopBottomNInFilter(queryDefn.getFilters());
  if (runningOnRS == false)   return false;
  runningOnRS=isCompatibleRSMap(rdLoad.loadQueryDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE).getResultSetExpressions(),queryDefn.getResultSetExpressions());
  if (runningOnRS == false)   return false;
  runningOnRS=isCompatibleSubQuery(rdLoad.loadQueryDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE),queryDefn);
  if (runningOnRS == false)   return false;
  IBaseQueryDefinition qd=rdLoad.loadQueryDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE);
  List filters=qd.getFilters();
  if (FilterDefnUtil.isConflictFilter(filters,queryDefn.getFilters())) {
    runningOnRS=false;
    filters=rdLoad.loadOriginalQueryDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE).getFilters();
    FilterDefnUtil.getRealFilterList(filters,queryDefn.getFilters());
  }
  if (runningOnRS == false)   return false;
  if (queryDefn.getFilters() != null && queryDefn.getFilters().size() > 0)   runningOnRS=queryDefn.getResultSetExpressions().values() == null || !hasAggregationOnRowObjects(queryDefn.getResultSetExpressions().values().iterator());
  return runningOnRS;
}

Fixed version (ground truth):
/** 
 * Whether query is running based on the result set of report document or the data set.
 * @param dataEngine
 * @param queryDefn
 * @return true, running on result set
 * @throws DataException
 */
private static boolean runQueryOnRS(DataEngineImpl dataEngine,IQueryDefinition queryDefn) throws DataException {
  String queryResultID=queryDefn.getQueryResultsID();
  String rootQueryResultID=QueryResultIDUtil.get1PartID(queryResultID);
  String parentQueryResultID=null;
  if (rootQueryResultID != null)   parentQueryResultID=QueryResultIDUtil.get2PartID(queryResultID);
 else   rootQueryResultID=queryResultID;
  QueryResultInfo queryResultInfo=new QueryResultInfo(rootQueryResultID,parentQueryResultID,null,null,-1);
  RDLoad rdLoad=RDUtil.newLoad(dataEngine.getContext(),queryResultInfo);
  boolean runningOnRS=GroupDefnUtil.isEqualGroups(queryDefn.getGroups(),rdLoad.loadGroupDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE));
  if (runningOnRS == false)   return false;
  runningOnRS=!hasTopBottomNInFilter(queryDefn.getFilters());
  if (runningOnRS == false)   return false;
  runningOnRS=isCompatibleRSMap(rdLoad.loadQueryDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE).getResultSetExpressions(),queryDefn.getResultSetExpressions());
  if (runningOnRS == false)   return false;
  runningOnRS=isCompatibleSubQuery(rdLoad.loadQueryDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE),queryDefn);
  if (runningOnRS == false)   return false;
  IBaseQueryDefinition qd=rdLoad.loadQueryDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE);
  List filters=qd.getFilters();
  if (FilterDefnUtil.isConflictFilter(filters,queryDefn.getFilters())) {
    runningOnRS=false;
    filters=rdLoad.loadOriginalQueryDefn(StreamManager.ROOT_STREAM,StreamManager.BASE_SCOPE).getFilters();
    FilterDefnUtil.getRealFilterList(filters,queryDefn.getFilters());
  }
  if (runningOnRS == false)   return false;
  if (hasSubquery(queryDefn)) {
    if (!QueryDefnUtil.isEqualSorts(queryDefn.getSorts(),qd.getSorts())) {
      runningOnRS=false;
    }
  }
  if (runningOnRS == false)   return false;
  if (queryDefn.getFilters() != null && queryDefn.getFilters().size() > 0)   runningOnRS=queryDefn.getResultSetExpressions().values() == null || !hasAggregationOnRowObjects(queryDefn.getResultSetExpressions().values().iterator());
  return runningOnRS;
}