Found a 46 line (233 tokens) duplication in the following files: Starting at line 74 of C:\project\statcvs\src\net\sf\statcvs\output\CvswebIntegration.java Starting at line 74 of C:\project\statcvs\src\net\sf\statcvs\output\ViewCvsIntegration.java protected String getFileUrl(final VersionedFile file, final String parameter) { String filename; if (isInAttic(file)) { final String path = file.getDirectory().getPath(); filename = "/" + path + "Attic/" + file.getFilename(); } else { filename = "/" + file.getFilenameWithPath(); } String append = parameter; if (this.postfix != null) { append += (append.length() > 0) ? "&" + this.postfix : "?" + this.postfix; } return this.baseURL + filename + append; } /** * @see net.sf.statcvs.output.WebRepositoryIntegration#getFileHistoryUrl */ public String getFileHistoryUrl(final VersionedFile file) { return getFileUrl(file, ""); } /** * @see net.sf.statcvs.output.WebRepositoryIntegration#getFileViewUrl(VersionedFile) */ public String getFileViewUrl(final VersionedFile file) { return getFileUrl(file, "?rev=HEAD&content-type=text/vnd.viewcvs-markup"); } /** * @see net.sf.statcvs.output.WebRepositoryIntegration#getFileViewUrl(VersionedFile) */ public String getFileViewUrl(final Revision revision) { return getFileUrl(revision.getFile(), "?rev=" + revision.getRevisionNumber() + "&content-type=text/vnd.viewcvs-markup"); } /** * @see net.sf.statcvs.output.WebRepositoryIntegration#getDiffUrl */ public String getDiffUrl(final Revision oldRevision, final Revision newRevision) { if (!oldRevision.getFile().equals(newRevision.getFile())) { throw new IllegalArgumentException("revisions must be of the same file"); } return getFileUrl(oldRevision.getFile(), ".diff?r1=" + oldRevision.getRevisionNumber() + "&r2=" + newRevision.getRevisionNumber()); ===================================================================== Found a 20 line (175 tokens) duplication in the following files: Starting at line 262 of C:\project\statcvs\src\net\sf\statcvs\charts\LOCChartMaker.java Starting at line 351 of C:\project\statcvs\src\net\sf\statcvs\charts\LOCChartMaker.java private static int getImportance(final Module dir, final Date start, final Date end) { final long timeRange = end.getTime() - start.getTime(); double maxImportance = 0; int currentLines = 0; final Iterator it = dir.getRevisions().iterator(); while (it.hasNext()) { final Revision revision = (Revision) it.next(); currentLines += revision.getLinesDelta(); final long timeInRange = revision.getDate().getTime() - start.getTime(); final double timeFraction = (timeInRange / (double) timeRange) * 0.9 + 0.1; maxImportance = Math.max(maxImportance, (currentLines) * (timeFraction)); } return (int) (maxImportance * 10); } private static List firstN(final List list, final int n) { return list.subList(0, Math.min(list.size(), n)); } private static List createAllModulesLOCSeries(final Repository repository, final int max) { ===================================================================== Found a 24 line (170 tokens) duplication in the following files: Starting at line 49 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\AllDevelopersXml.java Starting at line 74 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\FilesXml.java final String[] str = new String[NO_OF_COLS_IN_EXT_TABLE]; for (int j = 0; j < table.getRowCount(); j++) { Element col = null; int i = 0; final Iterator it = table.getColumnIterator(); final Iterator itr = table.getColumnIterator(); while (it.hasNext()) { final Column column = (Column) it.next(); column.renderHead(renderer); str[i] = renderer.getColumnHead(); if (i == 0) { col = new Element(str[i]); } else { col.addContent(new Element(str[i])); } i++; } boolean isFirstColumn = true; int k = 0; while (itr.hasNext()) { final Column column = (Column) itr.next(); column.renderCell(j, renderer); if (isFirstColumn && table.hasKeysInFirstColumn()) { col.setAttribute("ext", renderer.getRowHead().toLowerCase()); ===================================================================== Found a 45 line (170 tokens) duplication in the following files: Starting at line 55 of C:\project\statcvs\src\net\sf\statcvs\pages\FileSizesPageMaker.java Starting at line 201 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\FilesXml.java } /** * returns Integer of the number of files * * @returns int */ private int getCurrentFileCount() { int result = 0; final Iterator it = this.repository.getFiles().iterator(); while (it.hasNext()) { final VersionedFile file = (VersionedFile) it.next(); if (!file.isDead()) { result++; } } return result; } /** * returns the average size of a file in terms of LOC * * @returns double */ private double getCurrentAverageFileSize() { return ((double) this.repository.getCurrentLOC()) / getCurrentFileCount(); } /** * returns number of revisions done on average * * @returns double */ private double getCurrentAverageRevisionCount() { int revisions = 0; final Iterator it = this.repository.getFiles().iterator(); while (it.hasNext()) { final VersionedFile file = (VersionedFile) it.next(); if (!file.isDead()) { revisions += file.getRevisions().size(); } } return ((double) revisions) / getCurrentFileCount(); } } ===================================================================== Found a 18 line (127 tokens) duplication in the following files: Starting at line 21 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\LogXmlMaker.java Starting at line 28 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\RevisedFilesXml.java public class RevisedFilesXml { private final static String[] MONTH_TWO_CHARACTERS = { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }; public static String getAnchor(final SymbolicName tag) { return "tag-" + tag.getName(); } public static String getURL(final Date date) { final Calendar calendar = new GregorianCalendar(); calendar.setTime(date); return getFileName(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH)) + ".html"; } private static String getFileName(final int year, final int month) { return year + "-" + MONTH_TWO_CHARACTERS[month]; } private final Repository repo; ===================================================================== Found a 21 line (121 tokens) duplication in the following files: Starting at line 130 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\FilesXml.java Starting at line 177 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\FilesXml.java col = new Element(str[i]); } else { str[i] = renderer.getColumnHead().replaceAll(" ", "_"); //col.addContent(new Element (str[i])); } i++; } boolean isFirstColumn = true; int k = 0; while (itr.hasNext()) { final Column column = (Column) itr.next(); column.renderCell(j, renderer); if (isFirstColumn && table.hasKeysInFirstColumn()) { col.setText(/*removeHTML(*/renderer.getRowHead()); isFirstColumn = false; } else { col.setAttribute(str[k].toLowerCase(), renderer.getTableCell()); } k++; } ===================================================================== Found a 13 line (101 tokens) duplication in the following files: Starting at line 49 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\AllDevelopersXml.java Starting at line 119 of C:\project\statcvs\src\net\sf\statcvs\pages\xml\FilesXml.java final String[] str = new String[NO_OF_COLS_IN_LARG_TABLE]; for (int j = 0; j < table.getRowCount(); j++) { Element col = null; int i = 0; final Iterator it = table.getColumnIterator(); final Iterator itr = table.getColumnIterator(); while (it.hasNext()) { final Column column = (Column) it.next(); column.renderHead(renderer); str[i] = renderer.getColumnHead(); if (i == 0) { col = new Element(str[i]); } else {