Object[][] values = {
{
Long.valueOf(runId),
+ analysis.getProjectName(),
analysis.getBuildNumber(),
analysis.getStart(),
analysis.getEnd()
Location getLoc(Long locId) throws SQLException, TypeMismatchException
{
+ if (null == locId) {
+ return null;
+ }
+
Column[] columns = { CfbSchema.CLASSNAME, CfbSchema.METHODNAME, CfbSchema.METHODROLE, CfbSchema.STARTLINE, CfbSchema.ENDLINE };
Table[] tables = { CfbSchema.LOCATIONS };
Condition[] conditions = { new Condition(CfbSchema.LOCID, locId, Operation.EQUAL) };
String className = row.getString(0);
String methodName = row.getString(1);
String methodRole = row.getString(2);
- long startLine = row.getLong(3);
- long endLine = row.getLong(4);
+ Integer startLine = row.getInt(3);
+ Integer endLine = row.getInt(4);
Location loc = new Location(locId, className, methodName, methodRole, startLine, endLine);
return loc;
LocalVariable getVar(Long varId) throws SQLException, TypeMismatchException
{
+ if (null == varId) {
+ return null;
+ }
+
Column[] columns = { CfbSchema.NAME, CfbSchema.VARROLE };
Table[] tables = { CfbSchema.VARIABLES };
Condition[] conditions = { new Condition(CfbSchema.VARID_PK, varId, Operation.EQUAL) };
{
Column[] columns = { CfbSchema.RUNID };
Table[] tables = { CfbSchema.RUNS };
- Condition[] conditions = { new Condition( CfbSchema.STARTTIME, analysis.getStart(), Operation.LESS_THAN ) };
+ Condition[] conditions = {
+ new Condition( CfbSchema.PROJNAME, analysis.getProjectName(), Operation.EQUAL ),
+ new Condition( CfbSchema.STARTTIME, analysis.getStart(), Operation.LESS_THAN )
+ };
Sort[] sorts = { new Sort( CfbSchema.STARTTIME, Sort.Direction.DESCENDING ) };
int limit = 1;
return rows.get(0).getLong(0);
}
- Analysis getAnalysis(Long priorId) throws SQLException, TypeMismatchException
+ Analysis getAnalysis(Long analysisId) throws SQLException, TypeMismatchException
{
- Column[] columns = { CfbSchema.VERSION, CfbSchema.STARTTIME, CfbSchema.ENDTIME };
+ Column[] columns = { CfbSchema.PROJNAME, CfbSchema.VERSION, CfbSchema.STARTTIME, CfbSchema.ENDTIME };
Table[] tables = { CfbSchema.RUNS };
- Condition[] conditions = { new Condition( CfbSchema.RUNID, priorId, Operation.EQUAL ) };
+ Condition[] conditions = { new Condition( CfbSchema.RUNID, analysisId, Operation.EQUAL ) };
List<Row> rows = m_driver.select(m_con, columns, tables, conditions);
if (rows.size() < 1) {
Row row = rows.get(0);
- String version = row.getString(0);
- java.util.Date start= row.getDate(1);
- java.util.Date end = row.getDate(2);
+ String projName = row.getString(0);
+ String version = row.getString(1);
+ java.util.Date start= row.getDate(2);
+ java.util.Date end = row.getDate(3);
- Analysis prior = new Analysis(version);
- prior.setId(priorId.longValue());
+ Analysis prior = new Analysis(projName, version);
+ prior.setId(analysisId.longValue());
prior.setStart(start);
prior.setEnd(end);
- prior.setBugCollection(getBugCollection(priorId));
+ prior.setBugCollection(getBugCollection(analysisId));
return prior;
}
for (Row row : rows) {
// long foundId = row.getLong(0);
- long bugId = row.getLong(1);
- long categoryId = row.getLong(2);
- long firstLocId = row.getLong(3);
- long secondLocId = row.getLong(4);
- long thirdLocId = row.getLong(5);
- long varId = row.getLong(6);
+ Long bugId = row.getLong(1);
+ Long categoryId = row.getLong(2);
+ Long firstLocId = row.getLong(3);
+ Long secondLocId = row.getLong(4);
+ Long thirdLocId = row.getLong(5);
+ Long varId = row.getLong(6);
String bugType = getBugType(bugId);
String category = getCategoryName(categoryId);
Location[] locations = { getLoc(firstLocId), getLoc(secondLocId), getLoc(thirdLocId) };
- LocalVariable[] vars = { getVar(Long.valueOf(varId)) };
+ LocalVariable[] vars = { getVar(varId) };
BugInstance bug = new BugInstance(bugId, category, bugType, locations, vars);
- coll.getBugs().add(bug);
+ coll.add(bug);
}
return coll;