private ResultSet getQueryResult(
      Connection connection, PivotWidget widget, Map<String, Object> urlQueryParameters)
      throws ReportRunnerException {

    Entity entity = widget.getEntity();
    ro.nextreports.engine.Report report =
        NextUtil.getNextReport(storageService.getSettings(), entity);
    DataSource dataSource = getDataSource(entity);

    String sql = ro.nextreports.engine.util.ReportUtil.getSql(report);
    // retrieves the report parameters
    Map<String, QueryParameter> parameters = new LinkedHashMap<String, QueryParameter>();
    List<QueryParameter> parameterList = report.getParameters();
    if (parameterList != null) {
      for (QueryParameter param : parameterList) {
        parameters.put(param.getName(), param);
      }
    }

    Map<String, Object> parameterValues = new HashMap<String, Object>();

    // pivot is running with settings parameter values
    ChartUtil.initParameterSettings(
        parameterValues,
        widget.getQueryRuntime(),
        dashboardService.getUserWidgetParameters(widget.getId()));

    // parameters from embedded code
    try {
      ReportUtil.addUrlQueryParameters(
          storageService.getSettings(), entity, parameterValues, urlQueryParameters);
    } catch (Exception e1) {
      e1.printStackTrace();
      LOG.error(e1.getMessage(), e1);
    }

    QueryExecutor executor = null;
    try {
      boolean csv = CSVDialect.DRIVER_CLASS.equals(dataSource.getDriver());

      Query query = new Query(sql);
      executor = new QueryExecutor(query, parameters, parameterValues, connection, true, true, csv);
      executor.setMaxRows(0);
      executor.setTimeout(storageService.getSettings().getQueryTimeout());

      QueryResult queryResult = executor.execute();

      return queryResult.getResultSet();
    } catch (Exception e) {
      throw new ReportRunnerException(e);
    } finally {
      if (executor != null) {
        executor.closeCursors();
      }
    }
  }
  public RunHistoryQueryPanel(String id, final RunReportHistory runHistory) {
    super(id);

    int index = runHistory.getPath().lastIndexOf("/runHistory");
    String reportPath = runHistory.getPath().substring(0, index);
    Report report;
    String query = "NA";
    try {
      report = (Report) storageService.getEntity(reportPath);

      if (ReportConstants.NEXT.equals(report.getType())) {
        query =
            ro.nextreports.engine.util.ReportUtil.getSql(
                NextUtil.getNextReport(settings.getSettings(), report),
                runHistory.getParametersValues());
      }
    } catch (NotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    add(new MultiLineLabel("query", new Model<String>(query)));
  }