You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(5) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(21) |
Feb
(10) |
Mar
(24) |
Apr
(3) |
May
(91) |
Jun
(5) |
Jul
(13) |
Aug
(14) |
Sep
(11) |
Oct
(10) |
Nov
(95) |
Dec
(15) |
| 2007 |
Jan
(13) |
Feb
(2) |
Mar
(3) |
Apr
(16) |
May
(2) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2008 |
Jan
(1) |
Feb
(1) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: SourceForge.net <no...@so...> - 2010-06-09 18:47:20
|
Feature Requests item #3013901, was opened at 2010-06-09 11:47 Message generated for change (Tracker Item Submitted) made by halilindbloom You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=3013901&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Hali Lindbloom (halilindbloom) Assigned to: Nobody/Anonymous (nobody) Summary: Cobertura Package level statistics Initial Comment: I would love to see QALab collect package-level cobertura statistics. These numbers appear in the cobertura xml file, so seems like this would be possible. For example from a coverage.xml file: <packages> <package name="com.companyname.packagename" line-rate="0.8083826794966691" branch-rate="0.7049109083007388" complexity="2.9980382540461012"> ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=3013901&group_id=140880 |
|
From: BenoitX <be...@ya...> - 2009-12-08 20:06:20
|
In order to avoid forum deletion... -- View this message in context: http://n2.nabble.com/Test-tp4134808p4134808.html Sent from the QALab Developers mailing list archive at Nabble.com. |
|
From: <be...@us...> - 2009-05-20 16:50:00
|
Revision: 305
http://qalab.svn.sourceforge.net/qalab/?rev=305&view=rev
Author: benoitx
Date: 2009-05-20 16:49:51 +0000 (Wed, 20 May 2009)
Log Message:
-----------
Moved to v1.2
Modified Paths:
--------------
trunk/m1-common-build/project.xml
trunk/qalab/src/site/changes.xml
Modified: trunk/m1-common-build/project.xml
===================================================================
--- trunk/m1-common-build/project.xml 2009-05-20 16:48:26 UTC (rev 304)
+++ trunk/m1-common-build/project.xml 2009-05-20 16:49:51 UTC (rev 305)
@@ -49,7 +49,7 @@
<!-- The version of the project under development, e.g.
1.1, 1.2, 2.0-SNAPSHOT -->
<groupId>net.objectlab</groupId>
- <currentVersion>1.1</currentVersion>
+ <currentVersion>1.2</currentVersion>
<!-- details about the organization that 'owns' the project -->
<organization>
<name>ObjectLab Financial Ltd</name>
@@ -226,13 +226,13 @@
<dependency>
<groupId>jfree</groupId>
<artifactId>jfreechart</artifactId>
- <version>1.0.2</version>
+ <version>1.0.13</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>jfree</groupId>
<artifactId>jcommon</artifactId>
- <version>1.0.5</version>
+ <version>1.0.16</version>
<type>jar</type>
</dependency>
<dependency>
Modified: trunk/qalab/src/site/changes.xml
===================================================================
--- trunk/qalab/src/site/changes.xml 2009-05-20 16:48:26 UTC (rev 304)
+++ trunk/qalab/src/site/changes.xml 2009-05-20 16:49:51 UTC (rev 305)
@@ -29,6 +29,10 @@
<author email="qa...@ob...">Benoit Xhenseval</author>
</properties>
<body>
+
+ <release version="1.2" date="in SVN" description="Maintenance">
+ <action dev="benoitx" type="add">Updated JFreeChart.</action>
+ </release>
<release version="1.1" date="in SVN" description="Maintenance + Spider chart + Emma + FindBugs xml">
<action dev="benoitx" type="add">Re-written the FindBugs StatMerge to cope transparently with the XDOC or XML generated by FindBugs. Thanks to John Brugge and Danilo Stitz for the test files.</action>
<action dev="benoitx" type="add" issue="1607990" due-to="Robert Crawford">Added support for <a href="http://emma.sourceforge.net">Emma</a>.</action>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <be...@us...> - 2009-05-20 16:48:35
|
Revision: 304
http://qalab.svn.sourceforge.net/qalab/?rev=304&view=rev
Author: benoitx
Date: 2009-05-20 16:48:26 +0000 (Wed, 20 May 2009)
Log Message:
-----------
moved to v 1.2
Modified Paths:
--------------
trunk/maven-qalab-plugin/.classpath
Modified: trunk/maven-qalab-plugin/.classpath
===================================================================
--- trunk/maven-qalab-plugin/.classpath 2009-05-20 16:40:47 UTC (rev 303)
+++ trunk/maven-qalab-plugin/.classpath 2009-05-20 16:48:26 UTC (rev 304)
@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"></classpathentry>
- <classpathentry path="MAVEN_REPO/net.objectlab/jars/qalab-1.0.jar" kind="var"></classpathentry>
- <classpathentry path="MAVEN_REPO/jfree/jars/jfreechart-1.0.2.jar" kind="var"></classpathentry>
- <classpathentry path="MAVEN_REPO/jfree/jars/jcommon-1.0.5.jar" kind="var"></classpathentry>
- <classpathentry path="MAVEN_REPO/xerces/jars/xerces-2.4.0.jar" kind="var"></classpathentry>
- <classpathentry path="MAVEN_REPO/xerces/jars/xercesImpl-2.6.2.jar" kind="var"></classpathentry>
- <classpathentry path="MAVEN_REPO/ant/jars/ant-1.6.4.jar" kind="var"></classpathentry>
- <classpathentry path="MAVEN_REPO/xalan/jars/xalan-2.7.0.jar" kind="var"></classpathentry>
- <classpathentry kind="output" path="target/classes"></classpathentry>
-</classpath>
\ No newline at end of file
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="MAVEN_REPO/net.objectlab/jars/qalab-1.2.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/jfree/jars/jfreechart-1.0.13.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/jfree/jars/jcommon-1.0.16.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/xerces/jars/xerces-2.4.0.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/xerces/jars/xercesImpl-2.6.2.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/ant/jars/ant-1.6.4.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/xalan/jars/xalan-2.7.0.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <be...@us...> - 2009-05-20 16:40:56
|
Revision: 303
http://qalab.svn.sourceforge.net/qalab/?rev=303&view=rev
Author: benoitx
Date: 2009-05-20 16:40:47 +0000 (Wed, 20 May 2009)
Log Message:
-----------
removing hardcoded sizes.
Modified Paths:
--------------
trunk/maven-qalab-plugin/plugin-resources/qalab-chart-xdoc.jsl
Modified: trunk/maven-qalab-plugin/plugin-resources/qalab-chart-xdoc.jsl
===================================================================
--- trunk/maven-qalab-plugin/plugin-resources/qalab-chart-xdoc.jsl 2009-05-20 16:39:54 UTC (rev 302)
+++ trunk/maven-qalab-plugin/plugin-resources/qalab-chart-xdoc.jsl 2009-05-20 16:40:47 UTC (rev 303)
@@ -70,14 +70,14 @@
<p>Calculated for type(s): ${maven.qalab.chart.summarytypes}</p>
<p><a href="qalab/all-packages.html">
- <img width="680" height="453" src="qalab/summary.png"/>
+ <img src="qalab/summary.png"/>
</a></p>
<!-- Run Cobertura-line only if it is present -->
<ant:available property="coberturaPresent" file="${maven.qalab.merge.cobertura}"/>
<j:choose>
<j:when test="${coberturaPresent == 'true'}">
- <p><img width="680" height="453" src="qalab/cobertura-summary.png"/></p>
+ <p><img src="qalab/cobertura-summary.png"/></p>
</j:when>
</j:choose>
@@ -85,7 +85,7 @@
<ant:available property="spiderman" file="${maven.qalab.chart.destinationdir}/spidey-summary.png"/>
<j:choose>
<j:when test="${spiderman == 'true'}">
- <p><img width="680" height="453" src="qalab/spidey-summary.png"/></p>
+ <p><img src="qalab/spidey-summary.png"/></p>
</j:when>
</j:choose>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <be...@us...> - 2009-05-20 16:40:04
|
Revision: 302
http://qalab.svn.sourceforge.net/qalab/?rev=302&view=rev
Author: benoitx
Date: 2009-05-20 16:39:54 +0000 (Wed, 20 May 2009)
Log Message:
-----------
Must define the version explicitly.
Also Updated to JFreeChart 1.0.13 and JCommon 1.0.16
Modified Paths:
--------------
trunk/qalab/.classpath
trunk/qalab/project.xml
trunk/qalab/qalab.xml
trunk/qalab/src/main/java/net/objectlab/qalab/parser/DefaultChartGenerator.java
trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java
Modified: trunk/qalab/.classpath
===================================================================
--- trunk/qalab/.classpath 2009-05-20 16:38:18 UTC (rev 301)
+++ trunk/qalab/.classpath 2009-05-20 16:39:54 UTC (rev 302)
@@ -1,24 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
- </classpathentry>
- <classpathentry excluding="" kind="src" path="src/main/java">
- </classpathentry>
- <classpathentry output="target/test-classes" kind="src" path="src/test/java">
- </classpathentry>
- <classpathentry sourcepath="MAVEN_REPO/junit/java-sources/junit-3.8.2-sources.jar" kind="var" path="MAVEN_REPO/junit/jars/junit-3.8.2.jar">
- </classpathentry>
- <classpathentry sourcepath="MAVEN_REPO/jfree/java-sources/jfreechart-1.02-sources.jar" kind="var" path="MAVEN_REPO/jfree/jars/jfreechart-1.0.2.jar">
- </classpathentry>
- <classpathentry sourcepath="MAVEN_REPO/jfree/java-sources/jcommon-1.0.5-sources.jar" kind="var" path="MAVEN_REPO/jfree/jars/jcommon-1.0.5.jar">
- </classpathentry>
- <classpathentry sourcepath="MAVEN_REPO/xerces/java-sources/xerces-2.4.0-sources.jar" kind="var" path="MAVEN_REPO/xerces/jars/xerces-2.4.0.jar">
- </classpathentry>
- <classpathentry sourcepath="MAVEN_REPO/xerces/java-sources/xercesImpl-2.6.2-sources.jar" kind="var" path="MAVEN_REPO/xerces/jars/xercesImpl-2.6.2.jar">
- </classpathentry>
- <classpathentry sourcepath="MAVEN_REPO/ant/java-sources/ant-1.6.4-sources.jar" kind="var" path="MAVEN_REPO/ant/jars/ant-1.6.4.jar">
- </classpathentry>
- <classpathentry kind="output" path="target/classes">
- </classpathentry>
-</classpath>
\ No newline at end of file
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="var" path="MAVEN_REPO/junit/jars/junit-3.8.2.jar" sourcepath="MAVEN_REPO/junit/java-sources/junit-3.8.2-sources.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/jfree/jars/jfreechart-1.0.13.jar" sourcepath="MAVEN_REPO/jfree/java-sources/jfreechart-1.02-sources.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/jfree/jars/jcommon-1.0.16.jar" sourcepath="MAVEN_REPO/jfree/java-sources/jcommon-1.0.5-sources.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/xerces/jars/xerces-2.4.0.jar" sourcepath="MAVEN_REPO/xerces/java-sources/xerces-2.4.0-sources.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/xerces/jars/xercesImpl-2.6.2.jar" sourcepath="MAVEN_REPO/xerces/java-sources/xercesImpl-2.6.2-sources.jar"/>
+ <classpathentry kind="var" path="MAVEN_REPO/ant/jars/ant-1.6.4.jar" sourcepath="MAVEN_REPO/ant/java-sources/ant-1.6.4-sources.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Modified: trunk/qalab/project.xml
===================================================================
--- trunk/qalab/project.xml 2009-05-20 16:38:18 UTC (rev 301)
+++ trunk/qalab/project.xml 2009-05-20 16:39:54 UTC (rev 302)
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
+<!--
////////////////////////////////////////////////////////////////////////////////
//
// ObjectLab is sponsoring QALab
-//
-// Based in London, we are world leaders in the design and development
+//
+// Based in London, we are world leaders in the design and development
// of bespoke applications for the Securities Financing markets.
-//
+//
// <a href="http://www.objectlab.co.uk/open">Click here to learn more</a>
// ___ _ _ _ _ _
// / _ \| |__ (_) ___ ___| |_| | __ _| |__
@@ -48,7 +48,7 @@
<artifactId>qalab</artifactId>
<name>QALab Library Stats for Builds</name>
<!-- The version of the project under development, e.g.
- 1.1, 1.2, 2.0-SNAPSHOT
+ 1.1, 1.2, 2.0-SNAPSHOT
<groupId>net.objectlab</groupId>
<currentVersion>1.0</currentVersion>-->
<!-- details about the organization that 'owns' the project -->
@@ -129,6 +129,11 @@
<tag>1.1</tag>
</version>
<version>
+ <id>1.2</id>
+ <name>1.2</name>
+ <tag>1.2</tag>
+ </version>
+ <version>
<id>1.0</id>
<name>1.0</name>
<tag>1.0</tag>
@@ -257,13 +262,13 @@
<dependency>
<groupId>jfree</groupId>
<artifactId>jfreechart</artifactId>
- <version>1.0.2</version>
+ <version>1.0.13</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>jfree</groupId>
<artifactId>jcommon</artifactId>
- <version>1.0.5</version>
+ <version>1.0.16</version>
<type>jar</type>
</dependency>
<dependency>
@@ -287,14 +292,14 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
- <version>3.1.12-bin</version>
+ <version>5.0.4</version>
<type>jar</type>
<url>http://dev.mysql.com/downloads/</url>
<properties>
<classloader>root</classloader>
</properties>
</dependency>
-
+
</dependencies>
<!-- build information for the project -->
<build>
Modified: trunk/qalab/qalab.xml
===================================================================
--- trunk/qalab/qalab.xml 2009-05-20 16:38:18 UTC (rev 301)
+++ trunk/qalab/qalab.xml 2009-05-20 16:39:54 UTC (rev 302)
@@ -519,6 +519,18 @@
project="qalab" statvalue="69" type="cobertura-branch"/>
<summaryresult date="2007-04-20" filecount="2" module="qalab"
project="qalab" statvalue="2" type="pmd"/>
+ <summaryresult date="2009-05-20" filecount="39" module="qalab"
+ project="qalab" statvalue="30" type="checkstyle"/>
+ <summaryresult date="2009-05-20" filecount="3" module="qalab"
+ project="qalab" statvalue="9" type="findbugs"/>
+ <summaryresult date="2009-05-20" filecount="3" module="qalab"
+ project="qalab" statvalue="64" type="simian"/>
+ <summaryresult date="2009-05-20" filecount="34" module="qalab"
+ project="qalab" statvalue="58" type="cobertura-line"/>
+ <summaryresult date="2009-05-20" filecount="34" module="qalab"
+ project="qalab" statvalue="54" type="cobertura-branch"/>
+ <summaryresult date="2009-05-20" filecount="2" module="qalab"
+ project="qalab" statvalue="2" type="pmd"/>
</summary>
<file id="qalab-qalab-net_objectlab_qalab_util_package.html"
module="qalab" path="net/objectlab/qalab/util/package.html" project="qalab">
@@ -575,6 +587,7 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_ant_BuildStatChartTask.java"
@@ -796,6 +809,9 @@
<result date="2007-04-20" statvalue="1" type="findbugs"/>
<result date="2007-04-20" statvalue="93" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="1" type="findbugs"/>
+ <result date="2009-05-20" statvalue="93" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="93" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_BuildStatForChartParser.java"
@@ -940,6 +956,9 @@
<result date="2007-04-20" statvalue="1" type="checkstyle"/>
<result date="2007-04-20" statvalue="75" type="cobertura-line"/>
<result date="2007-04-20" statvalue="80" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="1" type="checkstyle"/>
+ <result date="2009-05-20" statvalue="75" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="72" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_BuildStatMoverHandler.java"
@@ -1076,6 +1095,8 @@
<result date="2007-04-09" statvalue="96" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="90" type="cobertura-line"/>
<result date="2007-04-20" statvalue="96" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="90" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="70" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_CheckstyleStatMerge.java"
@@ -1163,6 +1184,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_parser_FileStats.java"
module="qalab" path="net/objectlab/qalab/parser/FileStats.java" project="qalab">
@@ -1257,6 +1280,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="92" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="92" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="84" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_FindBugsStatMerge.java"
@@ -1344,6 +1369,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="97" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="97" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="92" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_parser_PMDStatMerge.java"
module="qalab"
@@ -1430,6 +1457,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_SimianStatMerge.java"
@@ -1552,6 +1581,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="66" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_parser_SingleStat.java"
module="qalab" path="net/objectlab/qalab/parser/SingleStat.java" project="qalab">
@@ -1640,6 +1671,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="68" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="68" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="50" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_parser_StatMerger.java"
module="qalab" path="net/objectlab/qalab/parser/StatMerger.java" project="qalab">
@@ -1731,6 +1764,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_ConsoleLogger.java"
module="qalab"
@@ -1822,6 +1857,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_TaskLogger.java"
module="qalab" path="net/objectlab/qalab/util/TaskLogger.java" project="qalab">
@@ -1906,6 +1943,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_QALabTags.java"
module="qalab" path="net/objectlab/qalab/util/QALabTags.java" project="qalab">
@@ -1987,6 +2026,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="60" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="60" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_Util.java"
module="qalab" path="net/objectlab/qalab/util/Util.java" project="qalab">
@@ -2081,6 +2122,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="88" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="88" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="81" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_CheckstyleOrPMDBaseMerge.java"
@@ -2225,6 +2268,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="75" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_exporter_QALabXMLExporter.java"
@@ -2312,6 +2357,8 @@
<result date="2007-04-09" statvalue="68" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="63" type="cobertura-line"/>
<result date="2007-04-20" statvalue="68" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="63" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="45" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_SilentLogger.java"
module="qalab" path="net/objectlab/qalab/util/SilentLogger.java" project="qalab">
@@ -2419,6 +2466,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_FilenameUtil.java"
module="qalab" path="net/objectlab/qalab/util/FilenameUtil.java" project="qalab">
@@ -2498,6 +2547,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="83" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="83" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="75" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_CoberturaBranchStatMerge.java"
@@ -2576,6 +2627,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_CoberturaLineStatMerge.java"
@@ -2661,6 +2714,8 @@
<result date="2007-04-09" statvalue="92" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="82" type="cobertura-line"/>
<result date="2007-04-20" statvalue="92" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="82" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="66" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_exporter_ConsoleExporter.java"
@@ -2738,6 +2793,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="47" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="47" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_interfaces_QALabExporter.java"
@@ -2815,6 +2872,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_PMDCPDStatMerge.java"
@@ -2856,6 +2915,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="66" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-C:_project_qalab_qalab_src_test_java_net_objectlab_qalab_parser_BuildStatChartTest.java"
@@ -2885,6 +2946,9 @@
<result date="2007-04-20" statvalue="3" type="checkstyle"/>
<result date="2007-04-20" statvalue="3" type="findbugs"/>
<result date="2007-04-20" statvalue="1" type="pmd"/>
+ <result date="2009-05-20" statvalue="3" type="checkstyle"/>
+ <result date="2009-05-20" statvalue="3" type="findbugs"/>
+ <result date="2009-05-20" statvalue="1" type="pmd"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_DefaultChartGenerator.java"
@@ -2926,6 +2990,11 @@
<result date="2007-04-20" statvalue="87" type="cobertura-line"/>
<result date="2007-04-20" statvalue="96" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="1" type="pmd"/>
+ <result date="2009-05-20" statvalue="19" type="checkstyle"/>
+ <result date="2009-05-20" statvalue="5" type="findbugs"/>
+ <result date="2009-05-20" statvalue="87" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="71" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="1" type="pmd"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_ChartGenerator.java"
@@ -2941,6 +3010,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_EmmaLineStatMerge.java"
@@ -2955,6 +3026,9 @@
<result date="2007-04-20" statvalue="7" type="checkstyle"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="7" type="checkstyle"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="91" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_EmmaBlockStatMerge.java"
@@ -2966,6 +3040,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_EmmaClassStatMerge.java"
@@ -2977,6 +3053,8 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_EmmaMethodStatMerge.java"
@@ -2988,5 +3066,7 @@
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-20" statvalue="100" type="cobertura-line"/>
<result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-line"/>
+ <result date="2009-05-20" statvalue="100" type="cobertura-branch"/>
</file>
</qalab>
Modified: trunk/qalab/src/main/java/net/objectlab/qalab/parser/DefaultChartGenerator.java
===================================================================
--- trunk/qalab/src/main/java/net/objectlab/qalab/parser/DefaultChartGenerator.java 2009-05-20 16:38:18 UTC (rev 301)
+++ trunk/qalab/src/main/java/net/objectlab/qalab/parser/DefaultChartGenerator.java 2009-05-20 16:39:54 UTC (rev 302)
@@ -231,7 +231,7 @@
final Map.Entry pairTypeDates = (Map.Entry) typeIter.next();
final String type = (String) pairTypeDates.getKey();
availableTypes.add(type);
- final TimeSeries ts = new TimeSeries(type, "bla", "bli", FixedMillisecond.class);
+ final TimeSeries ts = new TimeSeries(type, "bla", "bli");
final List typeDates = (List) pairTypeDates.getValue();
final List typeErrors = (List) theErrors.get(type);
Modified: trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java
===================================================================
--- trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java 2009-05-20 16:38:18 UTC (rev 301)
+++ trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java 2009-05-20 16:39:54 UTC (rev 302)
@@ -1,209 +1,209 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// ObjectLab is sponsoring QALab
-//
-// Based in London, we are world leaders in the design and development
-// of bespoke applications for the Securities Financing markets.
-//
-// <a href="http://www.objectlab.co.uk/open">Click here to learn more</a>
-// ___ _ _ _ _ _
-// / _ \| |__ (_) ___ ___| |_| | __ _| |__
-// | | | | '_ \| |/ _ \/ __| __| | / _` | '_ \
-// | |_| | |_) | | __/ (__| |_| |__| (_| | |_) |
-// \___/|_.__// |\___|\___|\__|_____\__,_|_.__/
-// |__/
-//
-// http://www.ObjectLab.co.uk
-// ---------------------------------------------------------------------------
-//
-//QALab is released under the GNU General Public License.
-//
-//QALab: Collects QA Statistics from your build over time.
-//2005+, ObjectLab Ltd
-//
-//This library is free software; you can redistribute it and/or
-//modify it under the terms of the GNU General Public
-//License as published by the Free Software Foundation; either
-//version 2.1 of the License, or (at your option) any later version.
-//
-//This library is distributed in the hope that it will be useful,
-//but WITHOUT ANY WARRANTY; without even the implied warranty of
-//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-//General Public License for more details.
-//
-//You should have received a copy of the GNU General Public
-//License along with this library; if not, write to the Free Software
-//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-////////////////////////////////////////////////////////////////////////////////
-package net.objectlab.qalab.parser;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import net.objectlab.qalab.util.Util;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-
-/**
- * This is the new FindBugs Stat merger, able to handle BOTH xdoc and xml output from FindBugs.
- *
- * @author Benoit Xhenseval
- * @version $Revision$
- */
-public class FindBugsStatMerge extends BaseStatMerge {
- private static final String TAG_BUG_COLLECTION = "BugCollection";
- private static final String TAG_BUG_INSTANCE = "BugInstance";
- private static final String TAG_CLASS_STATS = "ClassStats";
- private static final String TAG_FILE = "file";
- private static final String ATT_CLASSNAME = "classname";
- private static final String ATT_CLASS_IN_SUMMARY = "class";
- private static final String ATT_BUGS = "bugs";
- private Map violationPerFile = new HashMap();
-
- // used by the old XDOC format.
- private String currentFile;
- private boolean xdocFormatDetected = false;
-
-
- /**
- * At the start of a new element, capture the filename and if the element
- * is a result one, create a SingleStat to store for the given type.
- * @param ignoreNamespaceURI ignore (present for interface implementation).
- * @param localname name of the current element.
- * @param qualifiedname element name.
- * @param attrs the XML attribute of the current element.
- * @throws SAXException any SAX issue
- */
- public final void startElement(final String ignoreNamespaceURI, // NOPMD
- final String localname, final String qualifiedname, final Attributes attrs) throws SAXException {
- String local = localname;
-
- if ("".equals(local)) {
- local = qualifiedname;
- }
-
- //if (!isQuiet()) {
- // getTaskLogger().log("Start :" + local);
- //}
-
- if (TAG_FILE.equals(local)) {
- currentFile = getFileName(attrs, ATT_CLASSNAME);
- if (!violationPerFile.containsKey(currentFile)) {
- violationPerFile.put(currentFile, new Integer(0));
- }
- xdocFormatDetected = true;
- } else if (TAG_CLASS_STATS.equals(local)) {
- // new XML format
- String fileName = getFileName(attrs, ATT_CLASS_IN_SUMMARY);
- String bugs = Util.getAttributeValue(attrs, ATT_BUGS, isQuiet(), getTaskLogger());
- int bug = Integer.parseInt(bugs);
- if (bug > 0) {
- Integer issue = (Integer) violationPerFile.get(fileName);
- if (issue != null) {
- bug += issue.intValue();
- }
- violationPerFile.put(fileName, new Integer(bug));
- }
- }
-
- // for the XDOC, there is no summary, we need to COUNT the number of violations
- if (xdocFormatDetected && TAG_BUG_INSTANCE.equals(local)) {
- Integer issue = (Integer) violationPerFile.get(currentFile);
- if (issue != null) {
- violationPerFile.put(currentFile, new Integer(issue.intValue() + 1));
- } else {
- violationPerFile.put(currentFile, new Integer(1));
- }
- }
- }
-
- /**
- * At the end of an element, check if it is a BugCollection one and add the
- * all results found.
- * @param ignoreNamespaceURI ignore (present for interface implementation).
- * @param ignoreSimplename ignore (present for interface implementation).
- * @param qualifiedname the name of the element.
- * @throws SAXException any SAX issue
- */
- public final void endElement(final String ignoreNamespaceURI, // NOPMD
- final String ignoreSimplename, final String qualifiedname) // NOPMD
- throws SAXException {
- // if (!isQuiet()) {
- // getTaskLogger().log("End :" + qualifiedname);
- // }
-
- if (TAG_BUG_COLLECTION.equals(qualifiedname)) {
- // now publish all statistics one file at a time.
- setTotalStatistics(0);
- incrementFileCount(violationPerFile.size());
- for (Iterator it = violationPerFile.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Entry) it.next();
- resetFileStatistics();
- setCurrentFile((String) entry.getKey());
- addFileStatistics(((Integer) entry.getValue()).intValue());
- addNewResults();
- }
- }
- }
-
- /**
- * @return findbugs
- */
- public final String getType() {
- return "findbugs";
- }
-
- /**
- * Given the different ways that files can be stored on file system, this
- * method will remove anything part of the path up to the 'srcDir' given, it
- * should only retain the package name in java. For instance, for Findbugs
- * classname="net.objectlab.X" will be stored in the compiled stats as:
- * net/objectlab/A.java
- *
- * Please note that FindBugs may refer to internal classes too like
- * net.objectlab.A$Key but we shall consider them to be in the same file
- * net/objectlab/A.java
- *
- * @param att
- * the XML attribute
- */
- protected final String getFileName(final Attributes att, final String attributeName) {
- String fileName = Util.getAttributeValue(att, attributeName, isQuiet(), getTaskLogger());
-
- fileName = fileName.replace('.', '/');
-
- final int embeddedClass = fileName.indexOf("$");
-
- if (embeddedClass > 0) {
- fileName = fileName.substring(0, embeddedClass);
- }
-
- fileName += ".java";
-
- if (!isQuiet()) {
- getTaskLogger().log("setCurrentFileName FILE [" + fileName + "]");
- }
-
- return fileName;
- }
-}
-/*
- * ObjectLab is sponsoring QALab
- *
- * Based in London, we are world leaders in the design and development
- * of bespoke applications for the securities financing markets.
- *
- * <a href="http://www.objectlab.co.uk/open">Click here to learn more about us</a>
- * ___ _ _ _ _ _
- * / _ \| |__ (_) ___ ___| |_| | __ _| |__
- * | | | | '_ \| |/ _ \/ __| __| | / _` | '_ \
- * | |_| | |_) | | __/ (__| |_| |__| (_| | |_) |
- * \___/|_.__// |\___|\___|\__|_____\__,_|_.__/
- * |__/
- *
- * www.ObjectLab.co.uk
- */
+////////////////////////////////////////////////////////////////////////////////
+//
+// ObjectLab is sponsoring QALab
+//
+// Based in London, we are world leaders in the design and development
+// of bespoke applications for the Securities Financing markets.
+//
+// <a href="http://www.objectlab.co.uk/open">Click here to learn more</a>
+// ___ _ _ _ _ _
+// / _ \| |__ (_) ___ ___| |_| | __ _| |__
+// | | | | '_ \| |/ _ \/ __| __| | / _` | '_ \
+// | |_| | |_) | | __/ (__| |_| |__| (_| | |_) |
+// \___/|_.__// |\___|\___|\__|_____\__,_|_.__/
+// |__/
+//
+// http://www.ObjectLab.co.uk
+// ---------------------------------------------------------------------------
+//
+//QALab is released under the GNU General Public License.
+//
+//QALab: Collects QA Statistics from your build over time.
+//2005+, ObjectLab Ltd
+//
+//This library is free software; you can redistribute it and/or
+//modify it under the terms of the GNU General Public
+//License as published by the Free Software Foundation; either
+//version 2.1 of the License, or (at your option) any later version.
+//
+//This library is distributed in the hope that it will be useful,
+//but WITHOUT ANY WARRANTY; without even the implied warranty of
+//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+//General Public License for more details.
+//
+//You should have received a copy of the GNU General Public
+//License along with this library; if not, write to the Free Software
+//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+////////////////////////////////////////////////////////////////////////////////
+package net.objectlab.qalab.parser;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import net.objectlab.qalab.util.Util;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+
+/**
+ * This is the new FindBugs Stat merger, able to handle BOTH xdoc and xml output from FindBugs.
+ *
+ * @author Benoit Xhenseval
+ * @version $Revision: 187 $
+ */
+public class FindBugsStatMerge extends BaseStatMerge {
+ private static final String TAG_BUG_COLLECTION = "BugCollection";
+ private static final String TAG_BUG_INSTANCE = "BugInstance";
+ private static final String TAG_CLASS_STATS = "ClassStats";
+ private static final String TAG_FILE = "file";
+ private static final String ATT_CLASSNAME = "classname";
+ private static final String ATT_CLASS_IN_SUMMARY = "class";
+ private static final String ATT_BUGS = "bugs";
+ private Map violationPerFile = new HashMap();
+
+ // used by the old XDOC format.
+ private String currentFile;
+ private boolean xdocFormatDetected = false;
+
+
+ /**
+ * At the start of a new element, capture the filename and if the element
+ * is a result one, create a SingleStat to store for the given type.
+ * @param ignoreNamespaceURI ignore (present for interface implementation).
+ * @param localname name of the current element.
+ * @param qualifiedname element name.
+ * @param attrs the XML attribute of the current element.
+ * @throws SAXException any SAX issue
+ */
+ public final void startElement(final String ignoreNamespaceURI, // NOPMD
+ final String localname, final String qualifiedname, final Attributes attrs) throws SAXException {
+ String local = localname;
+
+ if ("".equals(local)) {
+ local = qualifiedname;
+ }
+
+ //if (!isQuiet()) {
+ // getTaskLogger().log("Start :" + local);
+ //}
+
+ if (TAG_FILE.equals(local)) {
+ currentFile = getFileName(attrs, ATT_CLASSNAME);
+ if (!violationPerFile.containsKey(currentFile)) {
+ violationPerFile.put(currentFile, new Integer(0));
+ }
+ xdocFormatDetected = true;
+ } else if (TAG_CLASS_STATS.equals(local)) {
+ // new XML format
+ String fileName = getFileName(attrs, ATT_CLASS_IN_SUMMARY);
+ String bugs = Util.getAttributeValue(attrs, ATT_BUGS, isQuiet(), getTaskLogger());
+ int bug = Integer.parseInt(bugs);
+ if (bug > 0) {
+ Integer issue = (Integer) violationPerFile.get(fileName);
+ if (issue != null) {
+ bug += issue.intValue();
+ }
+ violationPerFile.put(fileName, new Integer(bug));
+ }
+ }
+
+ // for the XDOC, there is no summary, we need to COUNT the number of violations
+ if (xdocFormatDetected && TAG_BUG_INSTANCE.equals(local)) {
+ Integer issue = (Integer) violationPerFile.get(currentFile);
+ if (issue != null) {
+ violationPerFile.put(currentFile, new Integer(issue.intValue() + 1));
+ } else {
+ violationPerFile.put(currentFile, new Integer(1));
+ }
+ }
+ }
+
+ /**
+ * At the end of an element, check if it is a BugCollection one and add the
+ * all results found.
+ * @param ignoreNamespaceURI ignore (present for interface implementation).
+ * @param ignoreSimplename ignore (present for interface implementation).
+ * @param qualifiedname the name of the element.
+ * @throws SAXException any SAX issue
+ */
+ public final void endElement(final String ignoreNamespaceURI, // NOPMD
+ final String ignoreSimplename, final String qualifiedname) // NOPMD
+ throws SAXException {
+ // if (!isQuiet()) {
+ // getTaskLogger().log("End :" + qualifiedname);
+ // }
+
+ if (TAG_BUG_COLLECTION.equals(qualifiedname)) {
+ // now publish all statistics one file at a time.
+ setTotalStatistics(0);
+ incrementFileCount(violationPerFile.size());
+ for (Iterator it = violationPerFile.entrySet().iterator(); it.hasNext();) {
+ Map.Entry entry = (Entry) it.next();
+ resetFileStatistics();
+ setCurrentFile((String) entry.getKey());
+ addFileStatistics(((Integer) entry.getValue()).intValue());
+ addNewResults();
+ }
+ }
+ }
+
+ /**
+ * @return findbugs
+ */
+ public final String getType() {
+ return "findbugs";
+ }
+
+ /**
+ * Given the different ways that files can be stored on file system, this
+ * method will remove anything part of the path up to the 'srcDir' given, it
+ * should only retain the package name in java. For instance, for Findbugs
+ * classname="net.objectlab.X" will be stored in the compiled stats as:
+ * net/objectlab/A.java
+ *
+ * Please note that FindBugs may refer to internal classes too like
+ * net.objectlab.A$Key but we shall consider them to be in the same file
+ * net/objectlab/A.java
+ *
+ * @param att
+ * the XML attribute
+ */
+ protected final String getFileName(final Attributes att, final String attributeName) {
+ String fileName = Util.getAttributeValue(att, attributeName, isQuiet(), getTaskLogger());
+
+ fileName = fileName.replace('.', '/');
+
+ final int embeddedClass = fileName.indexOf("$");
+
+ if (embeddedClass > 0) {
+ fileName = fileName.substring(0, embeddedClass);
+ }
+
+ fileName += ".java";
+
+ if (!isQuiet()) {
+ getTaskLogger().log("setCurrentFileName FILE [" + fileName + "]");
+ }
+
+ return fileName;
+ }
+}
+/*
+ * ObjectLab is sponsoring QALab
+ *
+ * Based in London, we are world leaders in the design and development
+ * of bespoke applications for the securities financing markets.
+ *
+ * <a href="http://www.objectlab.co.uk/open">Click here to learn more about us</a>
+ * ___ _ _ _ _ _
+ * / _ \| |__ (_) ___ ___| |_| | __ _| |__
+ * | | | | '_ \| |/ _ \/ __| __| | / _` | '_ \
+ * | |_| | |_) | | __/ (__| |_| |__| (_| | |_) |
+ * \___/|_.__// |\___|\___|\__|_____\__,_|_.__/
+ * |__/
+ *
+ * www.ObjectLab.co.uk
+ */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <be...@us...> - 2009-05-20 16:38:34
|
Revision: 301
http://qalab.svn.sourceforge.net/qalab/?rev=301&view=rev
Author: benoitx
Date: 2009-05-20 16:38:18 +0000 (Wed, 20 May 2009)
Log Message:
-----------
Must define the version explicitly.
Also Updated to JFreeChart 1.0.13 and JCommon 1.0.16
Modified Paths:
--------------
trunk/maven-qalab-plugin/project.xml
Modified: trunk/maven-qalab-plugin/project.xml
===================================================================
--- trunk/maven-qalab-plugin/project.xml 2008-03-16 15:38:17 UTC (rev 300)
+++ trunk/maven-qalab-plugin/project.xml 2009-05-20 16:38:18 UTC (rev 301)
@@ -62,20 +62,20 @@
<dependency>
<groupId>net.objectlab</groupId>
<artifactId>qalab</artifactId>
- <version>${pom.currentVersion}</version>
+ <version>1.2</version>
<type>jar</type>
<url>http://www.objectlab.co.uk/qalab/</url>
</dependency>
<dependency>
<groupId>jfree</groupId>
<artifactId>jfreechart</artifactId>
- <version>1.0.2</version>
+ <version>1.0.13</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>jfree</groupId>
<artifactId>jcommon</artifactId>
- <version>1.0.5</version>
+ <version>1.0.16</version>
<type>jar</type>
</dependency>
<dependency>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: SourceForge.net <no...@so...> - 2008-09-15 09:39:07
|
Feature Requests item #2111907, was opened at 2008-09-15 10:39 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=2111907&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: maven 2 plugin Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Eddy Soko (asoko) Assigned to: Nobody/Anonymous (nobody) Summary: Add number of bugs for Findbugs Initial Comment: Currently only number of errors is reported from Findbugs. It would be very usefull to have the number of bugs reported instead or in addition. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=2111907&group_id=140880 |
|
From: <ma...@us...> - 2008-03-16 15:38:21
|
Revision: 300
http://qalab.svn.sourceforge.net/qalab/?rev=300&view=rev
Author: marchy
Date: 2008-03-16 08:38:17 -0700 (Sun, 16 Mar 2008)
Log Message:
-----------
updated svn URL
Modified Paths:
--------------
trunk/m1-common-build/project.xml
Modified: trunk/m1-common-build/project.xml
===================================================================
--- trunk/m1-common-build/project.xml 2008-03-14 00:58:44 UTC (rev 299)
+++ trunk/m1-common-build/project.xml 2008-03-16 15:38:17 UTC (rev 300)
@@ -113,7 +113,7 @@
the connection element has the form:
scm:<system>:<system specific connection string> -->
<repository>
- <url>http://qalab.svn.sourceforge.net/qalab</url>
+ <url>http://qalab.svn.sourceforge.net/svnroot/qalab</url>
<connection>
scm:svn:https://qalab.svn.sourceforge.net/svnroot/qalab/trunk
</connection>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2008-03-14 00:58:49
|
Revision: 299
http://qalab.svn.sourceforge.net/qalab/?rev=299&view=rev
Author: marchy
Date: 2008-03-13 17:58:44 -0700 (Thu, 13 Mar 2008)
Log Message:
-----------
Changed my mail address
Modified Paths:
--------------
trunk/qalab/project.xml
Modified: trunk/qalab/project.xml
===================================================================
--- trunk/qalab/project.xml 2007-05-03 16:29:24 UTC (rev 298)
+++ trunk/qalab/project.xml 2008-03-14 00:58:44 UTC (rev 299)
@@ -208,7 +208,7 @@
<developer>
<name>Marcin Jekot</name>
<id>marchy</id>
- <email>marcin at jekot DOt net</email>
+ <email>marchy at users dot sourceforge dot net</email>
<organization>ObjectLab Financial Ltd</organization>
<roles>
<role>Developer</role>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: SourceForge.net <no...@so...> - 2008-02-13 07:56:05
|
Bugs item #1892481, was opened at 2008-02-13 08:56 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1892481&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Markus Mathis (mmathis76) Assigned to: Nobody/Anonymous (nobody) Summary: Java heap space issues with the Maven 1 plugin Initial Comment: Dear All, The build for one of our modules is failing constantly because of Java heap space issues during the creation of the qalabs report. (The actual module build without running the qalab report is successful). Is there any way to influency memory consumption of the qalabs plugin and to have the module built properly (other than disabling the maven 1 qalab plugin)? [echo] QALab Merge!... [echo] No Checkstyle file to process (/home/maven/sw_build/projects/ehf-modules-commons/target/checkstyle-raw-report.xml). [echo] No PMD CPD file to process (/home/maven/sw_build/projects/ehf-modules-commons/target/cpd.xml). [echo] No FindBugs file to process (/home/maven/sw_build/projects/ehf-modules-commons/target/findbugs-raw-report.xml). [echo] No Simian file to process (/home/maven/sw_build/projects/ehf-modules-commons/target/simian-raw-report.xml). [echo] QALab Merge! /home/maven/sw_build/projects/ehf-modules-commons/target/docs/cobertura/coverage.xml Line... [echo] To File /home/maven/sw_build/qalab-history/commons/qalab.xml BUILD FAILED File...... /home/maven/.maven/cache/maven-qalab-plugin-1.0/plugin.jelly Element... ant:mergestat Line...... 195 Column.... 6 Java heap space Total time : 27 minutes 31 seconds Finished at : Wednesday, February 13, 2008 3:41:22 AM UTC ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1892481&group_id=140880 |
|
From: SourceForge.net <no...@so...> - 2008-01-29 15:42:30
|
Bugs item #1881873, was opened at 2008-01-29 08:42 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1881873&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Steve (steven-feldman) Assigned to: Nobody/Anonymous (nobody) Summary: Exception in QALabXMLExporter (line 464) Initial Comment: Running buildchart for checkstyle and the console log says "Finished Parsing Source SML", then Files: 532 Statistics:47193". This is followed by an exception and stack trace as follows: ] java.lang.StringIndexOutOfBoundsException: String index out of range: -1 [mergestat] at java.lang.AbstractStringBuilder.substring(Unknown Source) [mergestat] at java.lang.StringBuffer.substring(Unknown Source) [mergestat] at java.lang.StringBuffer.substring(Unknown Source) [mergestat] at net.objectlab.qalab.exporter.QALabXMLExporter.save(QALabXMLExporter.java:464) [mergestat] at net.objectlab.qalab.ant.BuildStatMergeTask.mergeFiles(BuildStatMergeTask.java:236) [mergestat] at net.objectlab.qalab.ant.BuildStatMergeTask.execute(BuildStatMergeTask.java:194) [mergestat] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) [mergestat] at org.apache.tools.ant.Task.perform(Task.java:364) [mergestat] at org.apache.tools.ant.Target.execute(Target.java:341) [mergestat] at org.apache.tools.ant.Target.performTasks(Target.java:369) [mergestat] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) [mergestat] at org.apache.tools.ant.Project.executeTarget(Project.java:1185) [mergestat] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40) [mergestat] at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32) [mergestat] at org.apache.tools.ant.Project.executeTargets(Project.java:1068) [mergestat] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423) [mergestat] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137) Some help and guidance would be appreciated Steven Feldman Scientific Monitoring Inc. ste...@sc... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1881873&group_id=140880 |
|
From: SourceForge.net <no...@so...> - 2007-06-26 16:01:03
|
Bugs item #1743696, was opened at 2007-06-26 16:01 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1743696&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Interface (example) Group: v1.0 (example) Status: Open Resolution: None Priority: 5 Private: No Submitted By: CodingPlayer (codingplayer) Assigned to: Nobody/Anonymous (nobody) Summary: do not generate 'qalab.xml' file when project has no sources Initial Comment: in some cases it is useful to have a project without any sources (no classes). for example: a project containing only a maven2 parent pom (for all other projects in the company). in that case, no qalab.xml file should be generated. so simply check if sources exists, before running QALab. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1743696&group_id=140880 |
|
From: SourceForge.net <no...@so...> - 2007-06-15 20:37:48
|
Bugs item #1738095, was opened at 2007-06-15 15:37 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1738095&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: David (dnsw_06) Assigned to: Nobody/Anonymous (nobody) Summary: mvn-qalab-plugin movers report errors in multi module build Initial Comment: Maven version 2.0.6 mvn-qalab-plugin version 2.2 I'm using the mvn-qalab-plugin with maven 2.0.6 in a multi module project with the suggested work around. The chart is working fine but the movers report is not picking up previous run information from the qalab.xml file. We run this report once a day so I changed the <startTimeHoursOffset> variable from 1 to 25 to pick up the previous run. However the QALab Movers and Shakers report Previous Run and Previous Value columns are blank. Thanks for your help!!! David ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1738095&group_id=140880 |
|
From: SourceForge.net <no...@so...> - 2007-05-29 06:38:56
|
Bugs item #1727268, was opened at 2007-05-29 09:38 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1727268&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Anton (apechinsky) Assigned to: Nobody/Anonymous (nobody) Summary: CheckstyleStatMerge merges checkstyle statistics incorrectly Initial Comment: CheckstyleStatMerge does not merge checkstyle's statistics with no issues. For example, following will not be merged: <?xml version="1.0" encoding="UTF-8"?> <checkstyle version="4.3"> </checkstyle> ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747717&aid=1727268&group_id=140880 |
|
From: <be...@us...> - 2007-05-03 16:29:29
|
Revision: 298
http://svn.sourceforge.net/qalab/?rev=298&view=rev
Author: benoitx
Date: 2007-05-03 09:29:24 -0700 (Thu, 03 May 2007)
Log Message:
-----------
For some reason Eclipse did not see my changes... and refused to check them in...
Added Paths:
-----------
trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java
Removed Paths:
-------------
trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java
Deleted: trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java
===================================================================
--- trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java 2007-04-29 08:31:15 UTC (rev 297)
+++ trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java 2007-05-03 16:29:24 UTC (rev 298)
@@ -1,131 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// ObjectLab is sponsoring QALab
-//
-// Based in London, we are world leaders in the design and development
-// of bespoke applications for the Securities Financing markets.
-//
-// <a href="http://www.objectlab.co.uk/open">Click here to learn more</a>
-// ___ _ _ _ _ _
-// / _ \| |__ (_) ___ ___| |_| | __ _| |__
-// | | | | '_ \| |/ _ \/ __| __| | / _` | '_ \
-// | |_| | |_) | | __/ (__| |_| |__| (_| | |_) |
-// \___/|_.__// |\___|\___|\__|_____\__,_|_.__/
-// |__/
-//
-// http://www.ObjectLab.co.uk
-// ---------------------------------------------------------------------------
-//
-//QALab is released under the GNU General Public License.
-//
-//QALab: Collects QA Statistics from your build over time.
-//2005+, ObjectLab Ltd
-//
-//This library is free software; you can redistribute it and/or
-//modify it under the terms of the GNU General Public
-//License as published by the Free Software Foundation; either
-//version 2.1 of the License, or (at your option) any later version.
-//
-//This library is distributed in the hope that it will be useful,
-//but WITHOUT ANY WARRANTY; without even the implied warranty of
-//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-//General Public License for more details.
-//
-//You should have received a copy of the GNU General Public
-//License along with this library; if not, write to the Free Software
-//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-////////////////////////////////////////////////////////////////////////////////
-package net.objectlab.qalab.parser;
-
-import net.objectlab.qalab.util.Util;
-
-import org.xml.sax.Attributes;
-
-/**
- * This class is able to read the XDOC output from FindBugs and integrate the
- * violation results into our qalab.xml format.
- *
- * @see <a href="http://findbugs.sourceforge.net/">FindBugs at SourceForge</a>
- * @author Benoit Xhenseval
- * @version $Revision$
- */
-public class FindBugsStatMerge extends CheckstyleOrPMDBaseMerge {
- // ~ Methods
- // ------------------------------------------------------------------------
-
- /**
- * @return "file"
- */
- protected final String getFileTag() {
- return "file";
- }
-
- /**
- * @return classname
- */
- protected final String getFileNameAttribute() {
- return "classname";
- }
-
- /**
- * @return BugInstance
- */
- protected final String getViolationTag() {
- return "BugInstance";
- }
-
- /**
- * @return findbugs
- */
- public final String getType() {
- return "findbugs";
- }
-
- /**
- * Given the different ways that files can be stored on file system, this
- * method will remove anything part of the path up to the 'srcDir' given, it
- * should only retain the package name in java. For instance, for Findbugs
- * classname="net.objectlab.X" will be stored in the compiled stats as:
- * net/objectlab/A.java
- *
- * @param att
- * the XML attribute
- */
- protected final void setFileName(final Attributes att) {
- String fileName = Util.getAttributeValue(att, getFileNameAttribute(),
- isQuiet(), getTaskLogger());
-
- fileName = fileName.replace('.', '/');
-
- final int embeddedClass = fileName.indexOf("$");
-
- if (embeddedClass > 0) {
- fileName = fileName.substring(0, embeddedClass);
- }
-
- fileName += ".java";
-
- if (!isQuiet()) {
- getTaskLogger().log("setCurrentFileName FILE [" + fileName + "]");
- }
-
- setCurrentFile(fileName);
- }
-}
-/*
- * ObjectLab is sponsoring QALab
- *
- * Based in London, we are world leaders in the design and development
- * of bespoke applications for the securities financing markets.
- *
- * <a href="http://www.objectlab.co.uk/open">Click here to learn more about us</a>
- * ___ _ _ _ _ _
- * / _ \| |__ (_) ___ ___| |_| | __ _| |__
- * | | | | '_ \| |/ _ \/ __| __| | / _` | '_ \
- * | |_| | |_) | | __/ (__| |_| |__| (_| | |_) |
- * \___/|_.__// |\___|\___|\__|_____\__,_|_.__/
- * |__/
- *
- * www.ObjectLab.co.uk
- */
Added: trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java
===================================================================
--- trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java (rev 0)
+++ trunk/qalab/src/main/java/net/objectlab/qalab/parser/FindBugsStatMerge.java 2007-05-03 16:29:24 UTC (rev 298)
@@ -0,0 +1,209 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// ObjectLab is sponsoring QALab
+//
+// Based in London, we are world leaders in the design and development
+// of bespoke applications for the Securities Financing markets.
+//
+// <a href="http://www.objectlab.co.uk/open">Click here to learn more</a>
+// ___ _ _ _ _ _
+// / _ \| |__ (_) ___ ___| |_| | __ _| |__
+// | | | | '_ \| |/ _ \/ __| __| | / _` | '_ \
+// | |_| | |_) | | __/ (__| |_| |__| (_| | |_) |
+// \___/|_.__// |\___|\___|\__|_____\__,_|_.__/
+// |__/
+//
+// http://www.ObjectLab.co.uk
+// ---------------------------------------------------------------------------
+//
+//QALab is released under the GNU General Public License.
+//
+//QALab: Collects QA Statistics from your build over time.
+//2005+, ObjectLab Ltd
+//
+//This library is free software; you can redistribute it and/or
+//modify it under the terms of the GNU General Public
+//License as published by the Free Software Foundation; either
+//version 2.1 of the License, or (at your option) any later version.
+//
+//This library is distributed in the hope that it will be useful,
+//but WITHOUT ANY WARRANTY; without even the implied warranty of
+//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+//General Public License for more details.
+//
+//You should have received a copy of the GNU General Public
+//License along with this library; if not, write to the Free Software
+//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+////////////////////////////////////////////////////////////////////////////////
+package net.objectlab.qalab.parser;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import net.objectlab.qalab.util.Util;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+
+/**
+ * This is the new FindBugs Stat merger, able to handle BOTH xdoc and xml output from FindBugs.
+ *
+ * @author Benoit Xhenseval
+ * @version $Revision$
+ */
+public class FindBugsStatMerge extends BaseStatMerge {
+ private static final String TAG_BUG_COLLECTION = "BugCollection";
+ private static final String TAG_BUG_INSTANCE = "BugInstance";
+ private static final String TAG_CLASS_STATS = "ClassStats";
+ private static final String TAG_FILE = "file";
+ private static final String ATT_CLASSNAME = "classname";
+ private static final String ATT_CLASS_IN_SUMMARY = "class";
+ private static final String ATT_BUGS = "bugs";
+ private Map violationPerFile = new HashMap();
+
+ // used by the old XDOC format.
+ private String currentFile;
+ private boolean xdocFormatDetected = false;
+
+
+ /**
+ * At the start of a new element, capture the filename and if the element
+ * is a result one, create a SingleStat to store for the given type.
+ * @param ignoreNamespaceURI ignore (present for interface implementation).
+ * @param localname name of the current element.
+ * @param qualifiedname element name.
+ * @param attrs the XML attribute of the current element.
+ * @throws SAXException any SAX issue
+ */
+ public final void startElement(final String ignoreNamespaceURI, // NOPMD
+ final String localname, final String qualifiedname, final Attributes attrs) throws SAXException {
+ String local = localname;
+
+ if ("".equals(local)) {
+ local = qualifiedname;
+ }
+
+ //if (!isQuiet()) {
+ // getTaskLogger().log("Start :" + local);
+ //}
+
+ if (TAG_FILE.equals(local)) {
+ currentFile = getFileName(attrs, ATT_CLASSNAME);
+ if (!violationPerFile.containsKey(currentFile)) {
+ violationPerFile.put(currentFile, new Integer(0));
+ }
+ xdocFormatDetected = true;
+ } else if (TAG_CLASS_STATS.equals(local)) {
+ // new XML format
+ String fileName = getFileName(attrs, ATT_CLASS_IN_SUMMARY);
+ String bugs = Util.getAttributeValue(attrs, ATT_BUGS, isQuiet(), getTaskLogger());
+ int bug = Integer.parseInt(bugs);
+ if (bug > 0) {
+ Integer issue = (Integer) violationPerFile.get(fileName);
+ if (issue != null) {
+ bug += issue.intValue();
+ }
+ violationPerFile.put(fileName, new Integer(bug));
+ }
+ }
+
+ // for the XDOC, there is no summary, we need to COUNT the number of violations
+ if (xdocFormatDetected && TAG_BUG_INSTANCE.equals(local)) {
+ Integer issue = (Integer) violationPerFile.get(currentFile);
+ if (issue != null) {
+ violationPerFile.put(currentFile, new Integer(issue.intValue() + 1));
+ } else {
+ violationPerFile.put(currentFile, new Integer(1));
+ }
+ }
+ }
+
+ /**
+ * At the end of an element, check if it is a BugCollection one and add the
+ * all results found.
+ * @param ignoreNamespaceURI ignore (present for interface implementation).
+ * @param ignoreSimplename ignore (present for interface implementation).
+ * @param qualifiedname the name of the element.
+ * @throws SAXException any SAX issue
+ */
+ public final void endElement(final String ignoreNamespaceURI, // NOPMD
+ final String ignoreSimplename, final String qualifiedname) // NOPMD
+ throws SAXException {
+ // if (!isQuiet()) {
+ // getTaskLogger().log("End :" + qualifiedname);
+ // }
+
+ if (TAG_BUG_COLLECTION.equals(qualifiedname)) {
+ // now publish all statistics one file at a time.
+ setTotalStatistics(0);
+ incrementFileCount(violationPerFile.size());
+ for (Iterator it = violationPerFile.entrySet().iterator(); it.hasNext();) {
+ Map.Entry entry = (Entry) it.next();
+ resetFileStatistics();
+ setCurrentFile((String) entry.getKey());
+ addFileStatistics(((Integer) entry.getValue()).intValue());
+ addNewResults();
+ }
+ }
+ }
+
+ /**
+ * @return findbugs
+ */
+ public final String getType() {
+ return "findbugs";
+ }
+
+ /**
+ * Given the different ways that files can be stored on file system, this
+ * method will remove anything part of the path up to the 'srcDir' given, it
+ * should only retain the package name in java. For instance, for Findbugs
+ * classname="net.objectlab.X" will be stored in the compiled stats as:
+ * net/objectlab/A.java
+ *
+ * Please note that FindBugs may refer to internal classes too like
+ * net.objectlab.A$Key but we shall consider them to be in the same file
+ * net/objectlab/A.java
+ *
+ * @param att
+ * the XML attribute
+ */
+ protected final String getFileName(final Attributes att, final String attributeName) {
+ String fileName = Util.getAttributeValue(att, attributeName, isQuiet(), getTaskLogger());
+
+ fileName = fileName.replace('.', '/');
+
+ final int embeddedClass = fileName.indexOf("$");
+
+ if (embeddedClass > 0) {
+ fileName = fileName.substring(0, embeddedClass);
+ }
+
+ fileName += ".java";
+
+ if (!isQuiet()) {
+ getTaskLogger().log("setCurrentFileName FILE [" + fileName + "]");
+ }
+
+ return fileName;
+ }
+}
+/*
+ * ObjectLab is sponsoring QALab
+ *
+ * Based in London, we are world leaders in the design and development
+ * of bespoke applications for the securities financing markets.
+ *
+ * <a href="http://www.objectlab.co.uk/open">Click here to learn more about us</a>
+ * ___ _ _ _ _ _
+ * / _ \| |__ (_) ___ ___| |_| | __ _| |__
+ * | | | | '_ \| |/ _ \/ __| __| | / _` | '_ \
+ * | |_| | |_) | | __/ (__| |_| |__| (_| | |_) |
+ * \___/|_.__// |\___|\___|\__|_____\__,_|_.__/
+ * |__/
+ *
+ * www.ObjectLab.co.uk
+ */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <be...@us...> - 2007-04-29 08:31:17
|
Revision: 297
http://svn.sourceforge.net/qalab/?rev=297&view=rev
Author: benoitx
Date: 2007-04-29 01:31:15 -0700 (Sun, 29 Apr 2007)
Log Message:
-----------
A few fixes for Emma support by John Brugge (thanks!)
Modified Paths:
--------------
trunk/qalab/qalab.xml
trunk/qalab/src/main/java/net/objectlab/qalab/parser/EmmaLineStatMerge.java
trunk/qalab/src/site/changes.xml
trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaBlockStatMergeTest.java
trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaLineStatMergeTest.java
trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaMethodStatMergeTest.java
Modified: trunk/qalab/qalab.xml
===================================================================
--- trunk/qalab/qalab.xml 2007-04-19 23:49:48 UTC (rev 296)
+++ trunk/qalab/qalab.xml 2007-04-29 08:31:15 UTC (rev 297)
@@ -507,6 +507,18 @@
project="qalab" statvalue="68" type="cobertura-branch"/>
<summaryresult date="2007-04-09" filecount="2" module="qalab"
project="qalab" statvalue="2" type="pmd"/>
+ <summaryresult date="2007-04-20" filecount="39" module="qalab"
+ project="qalab" statvalue="30" type="checkstyle"/>
+ <summaryresult date="2007-04-20" filecount="4" module="qalab"
+ project="qalab" statvalue="11" type="findbugs"/>
+ <summaryresult date="2007-04-20" filecount="3" module="qalab"
+ project="qalab" statvalue="64" type="simian"/>
+ <summaryresult date="2007-04-20" filecount="34" module="qalab"
+ project="qalab" statvalue="58" type="cobertura-line"/>
+ <summaryresult date="2007-04-20" filecount="34" module="qalab"
+ project="qalab" statvalue="69" type="cobertura-branch"/>
+ <summaryresult date="2007-04-20" filecount="2" module="qalab"
+ project="qalab" statvalue="2" type="pmd"/>
</summary>
<file id="qalab-qalab-net_objectlab_qalab_util_package.html"
module="qalab" path="net/objectlab/qalab/util/package.html" project="qalab">
@@ -562,6 +574,7 @@
<result date="2006-12-12" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_ant_BuildStatChartTask.java"
@@ -780,6 +793,9 @@
<result date="2007-04-09" statvalue="1" type="findbugs"/>
<result date="2007-04-09" statvalue="91" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="1" type="findbugs"/>
+ <result date="2007-04-20" statvalue="93" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_BuildStatForChartParser.java"
@@ -921,6 +937,9 @@
<result date="2007-04-09" statvalue="1" type="checkstyle"/>
<result date="2007-04-09" statvalue="75" type="cobertura-line"/>
<result date="2007-04-09" statvalue="80" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="1" type="checkstyle"/>
+ <result date="2007-04-20" statvalue="75" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="80" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_BuildStatMoverHandler.java"
@@ -1055,6 +1074,8 @@
<result date="2007-04-06" statvalue="96" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="90" type="cobertura-line"/>
<result date="2007-04-09" statvalue="96" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="90" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="96" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_CheckstyleStatMerge.java"
@@ -1140,6 +1161,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_parser_FileStats.java"
module="qalab" path="net/objectlab/qalab/parser/FileStats.java" project="qalab">
@@ -1232,6 +1255,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="92" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="92" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_FindBugsStatMerge.java"
@@ -1317,6 +1342,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="97" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_parser_PMDStatMerge.java"
module="qalab"
@@ -1401,6 +1428,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_SimianStatMerge.java"
@@ -1521,6 +1550,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_parser_SingleStat.java"
module="qalab" path="net/objectlab/qalab/parser/SingleStat.java" project="qalab">
@@ -1607,6 +1638,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="68" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="68" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_parser_StatMerger.java"
module="qalab" path="net/objectlab/qalab/parser/StatMerger.java" project="qalab">
@@ -1696,6 +1729,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_ConsoleLogger.java"
module="qalab"
@@ -1785,6 +1820,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_TaskLogger.java"
module="qalab" path="net/objectlab/qalab/util/TaskLogger.java" project="qalab">
@@ -1867,6 +1904,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_QALabTags.java"
module="qalab" path="net/objectlab/qalab/util/QALabTags.java" project="qalab">
@@ -1946,6 +1985,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="60" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="60" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_Util.java"
module="qalab" path="net/objectlab/qalab/util/Util.java" project="qalab">
@@ -2038,6 +2079,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="88" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="88" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_CheckstyleOrPMDBaseMerge.java"
@@ -2180,6 +2223,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_exporter_QALabXMLExporter.java"
@@ -2265,6 +2310,8 @@
<result date="2007-04-06" statvalue="68" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="63" type="cobertura-line"/>
<result date="2007-04-09" statvalue="68" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="63" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="68" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_SilentLogger.java"
module="qalab" path="net/objectlab/qalab/util/SilentLogger.java" project="qalab">
@@ -2370,6 +2417,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file id="qalab-qalab-net_objectlab_qalab_util_FilenameUtil.java"
module="qalab" path="net/objectlab/qalab/util/FilenameUtil.java" project="qalab">
@@ -2447,6 +2496,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="83" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="83" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_CoberturaBranchStatMerge.java"
@@ -2523,6 +2574,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_CoberturaLineStatMerge.java"
@@ -2606,6 +2659,8 @@
<result date="2007-04-06" statvalue="92" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="82" type="cobertura-line"/>
<result date="2007-04-09" statvalue="92" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="82" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="92" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_exporter_ConsoleExporter.java"
@@ -2681,6 +2736,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="47" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="47" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_interfaces_QALabExporter.java"
@@ -2756,6 +2813,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_PMDCPDStatMerge.java"
@@ -2795,6 +2854,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-C:_project_qalab_qalab_src_test_java_net_objectlab_qalab_parser_BuildStatChartTest.java"
@@ -2821,6 +2882,9 @@
<result date="2007-04-09" statvalue="3" type="checkstyle"/>
<result date="2007-04-09" statvalue="3" type="findbugs"/>
<result date="2007-04-09" statvalue="1" type="pmd"/>
+ <result date="2007-04-20" statvalue="3" type="checkstyle"/>
+ <result date="2007-04-20" statvalue="3" type="findbugs"/>
+ <result date="2007-04-20" statvalue="1" type="pmd"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_DefaultChartGenerator.java"
@@ -2855,6 +2919,13 @@
<result date="2007-04-09" statvalue="87" type="cobertura-line"/>
<result date="2007-04-09" statvalue="96" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="1" type="pmd"/>
+ <result date="2007-04-20" statvalue="1" type="findbugs"/>
+ <result date="2007-04-20" statvalue="19" type="checkstyle"/>
+ <result date="2007-04-20" statvalue="6" type="findbugs"/>
+ <result date="2007-04-20" statvalue="1" type="findbugs"/>
+ <result date="2007-04-20" statvalue="87" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="96" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="1" type="pmd"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_ChartGenerator.java"
@@ -2868,6 +2939,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_EmmaLineStatMerge.java"
@@ -2879,6 +2952,9 @@
<result date="2007-04-09" statvalue="7" type="checkstyle"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="7" type="checkstyle"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_EmmaBlockStatMerge.java"
@@ -2888,6 +2964,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_EmmaClassStatMerge.java"
@@ -2897,6 +2975,8 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
<file
id="qalab-qalab-net_objectlab_qalab_parser_EmmaMethodStatMerge.java"
@@ -2906,5 +2986,7 @@
<result date="2007-04-06" statvalue="100" type="cobertura-branch"/>
<result date="2007-04-09" statvalue="100" type="cobertura-line"/>
<result date="2007-04-09" statvalue="100" type="cobertura-branch"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-line"/>
+ <result date="2007-04-20" statvalue="100" type="cobertura-branch"/>
</file>
</qalab>
Modified: trunk/qalab/src/main/java/net/objectlab/qalab/parser/EmmaLineStatMerge.java
===================================================================
--- trunk/qalab/src/main/java/net/objectlab/qalab/parser/EmmaLineStatMerge.java 2007-04-19 23:49:48 UTC (rev 296)
+++ trunk/qalab/src/main/java/net/objectlab/qalab/parser/EmmaLineStatMerge.java 2007-04-29 08:31:15 UTC (rev 297)
@@ -106,6 +106,7 @@
inAll = true;
} else if (PACKAGE_TAG.equals(local)) {
packageName = Util.getAttributeValue(attrs, NAME_ATTRIBUTE, isQuiet(), getTaskLogger());
+ inAll = false;
} else if (FILE_TAG.equals(local)) {
inFile = true;
fileName = Util.getAttributeValue(attrs, NAME_ATTRIBUTE, isQuiet(), getTaskLogger());
@@ -126,7 +127,8 @@
if (inAll && !inFile) {
totalCoverage = coverage;
} else {
- setCurrentFile(packageName + "." + fileName);
+ final String pathName = packageName.replace('.', '/');
+ setCurrentFile(pathName + "/" + fileName);
addFileStatistics(coverage);
}
}
Modified: trunk/qalab/src/site/changes.xml
===================================================================
--- trunk/qalab/src/site/changes.xml 2007-04-19 23:49:48 UTC (rev 296)
+++ trunk/qalab/src/site/changes.xml 2007-04-29 08:31:15 UTC (rev 297)
@@ -34,7 +34,7 @@
<action dev="benoitx" type="add" issue="1607990" due-to="Robert Crawford">Added support for <a href="http://emma.sourceforge.net">Emma</a>.</action>
<action dev="benoitx" type="add">New version 1.2 for qalab.xml, the migration is transparent and adds 'project' and 'module' attributes on summaryresult and file
in order to move towards a consolidated qalab.xml (also required by the DB export).</action>
- <action dev="benoitx" type="add">New Spider Chart that shows 3 snapshot of multi-dimensional data at 0, 30 and 90 days</action>
+ <action dev="benoitx" type="add">New Spider Chart that shows 3 snapshots of multi-dimensional data at 0, 30 and 90 days</action>
<action dev="benoitx" type="add">QALab Exporter to DB</action>
<action dev="benoitx" type="add">Split the chart generation from the XML parsing (create ChartGenerator).</action>
</release>
Modified: trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaBlockStatMergeTest.java
===================================================================
--- trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaBlockStatMergeTest.java 2007-04-19 23:49:48 UTC (rev 296)
+++ trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaBlockStatMergeTest.java 2007-04-29 08:31:15 UTC (rev 297)
@@ -51,7 +51,7 @@
System.out.println(streamToString(exporter.getDocument()));
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 1, 40, 4);
+ checkSummary(exporter.getDocument(), 1, 60, 4);
checkFileCount(exporter.getDocument(), 1, 100);
exporter.save();
Modified: trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaLineStatMergeTest.java
===================================================================
--- trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaLineStatMergeTest.java 2007-04-19 23:49:48 UTC (rev 296)
+++ trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaLineStatMergeTest.java 2007-04-29 08:31:15 UTC (rev 297)
@@ -52,7 +52,7 @@
System.out.println(streamToString(exporter.getDocument()));
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 1, 25, 4);
+ checkSummary(exporter.getDocument(), 1, 64, 4);
checkFileCount(exporter.getDocument(), 1, 100);
exporter.save();
Modified: trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaMethodStatMergeTest.java
===================================================================
--- trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaMethodStatMergeTest.java 2007-04-19 23:49:48 UTC (rev 296)
+++ trunk/qalab/src/test/java/net/objectlab/qalab/parser/EmmaMethodStatMergeTest.java 2007-04-29 08:31:15 UTC (rev 297)
@@ -51,7 +51,7 @@
System.out.println(streamToString(exporter.getDocument()));
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 1, 25, 4);
+ checkSummary(exporter.getDocument(), 1, 65, 4);
checkFileCount(exporter.getDocument(), 1, 100);
exporter.save();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: SourceForge.net <no...@so...> - 2007-04-19 23:59:42
|
Feature Requests item #1482408, was opened at 2006-05-05 11:32 Message generated for change (Comment added) made by benoitx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1482408&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed Resolution: None Priority: 5 Private: No Submitted By: DaveCorley (heavydawson) Assigned to: Nobody/Anonymous (nobody) Summary: Package dependent jars with qalab Initial Comment: I was wondering why the jfreechart, log4j, and xerces jars aren't packaged with the qalab binary distribution? I could understand if there were license issues, but to the best of my ability I recall seeing these jars packaged with many other binary distro's. If it's simply to keep the file size down, I think you worry too much about bandwidth ;-D In the end, end-users will appreciate not having to download seperate jars. ---------------------------------------------------------------------- >Comment By: Benoit Xhenseval (benoitx) Date: 2007-04-19 23:59 Message: Logged In: YES user_id=358115 Originator: NO This was done as part of QALab 1.0 (lib4ant directory) ---------------------------------------------------------------------- Comment By: Benoit Xhenseval (benoitx) Date: 2006-11-12 19:46 Message: Logged In: YES user_id=358115 This is probably because we primarily use Maven and all that is taken care of by the Maven Central Repository... I will add the jFreeChart jars we're using for the coming 1.0 release. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1482408&group_id=140880 |
|
From: SourceForge.net <no...@so...> - 2007-04-19 23:55:59
|
Feature Requests item #1583014, was opened at 2006-10-23 16:49 Message generated for change (Comment added) made by benoitx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1583014&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Support for new format Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Curt Cox (coxcu) Assigned to: Nobody/Anonymous (nobody) Summary: Add support for Fitnesse Initial Comment: Please consider adding support for Fitnesse. http://fitnesse.org Thanks, Curt ---------------------------------------------------------------------- >Comment By: Benoit Xhenseval (benoitx) Date: 2007-04-19 23:55 Message: Logged In: YES user_id=358115 Originator: NO Hi, Anyone still interested in this? Could someone send us a couple of xml files generated? Does Fitness integrates with maven? Thanks Benoit ---------------------------------------------------------------------- Comment By: Benoit Xhenseval (benoitx) Date: 2006-11-12 19:37 Message: Logged In: YES user_id=358115 Please provide a couple of examples of the type of XML reports that Fitness generates. Thanks ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1583014&group_id=140880 |
|
From: SourceForge.net <no...@so...> - 2007-04-19 23:54:58
|
Feature Requests item #1494312, was opened at 2006-05-24 13:47 Message generated for change (Comment added) made by benoitx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1494312&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Support for new format Group: None >Status: Closed Resolution: None Priority: 5 Private: No Submitted By: Stephen Colebourne (scolebourne) Assigned to: Marcin Jekot (marchy) Summary: Cobertura percentage not detailed enough Initial Comment: The qalab cobertura statistics are calculated on a 0-100 basis, thus there are only 100 possible intermediate points. For a large project this doesn't provide enough detail (our junit coverage only increases slowly over time). This RFE is to change the cobertura statistics gathering to record statistics to one or two decimal places, for example 28.2% rather than 28%. The underlying cobertura xml file contains the information so that shouldn't be an issue. ---------------------------------------------------------------------- >Comment By: Benoit Xhenseval (benoitx) Date: 2007-04-19 23:54 Message: Logged In: YES user_id=358115 Originator: NO Hi Steve, We just had a look at this and, unfortunately, the code is using 'int' all over the place (including chart generation etc). As we mentioned before, QALab is not reporting 'exact' data but trends; the amount of changes vs. gain in precision does not warrant it at this stage, sorry. Unless a volunteer shows up, I shall close the issue to avoid false hope. Benoit ---------------------------------------------------------------------- Comment By: Benoit Xhenseval (benoitx) Date: 2006-11-12 19:39 Message: Logged In: YES user_id=358115 Steve, Sorry for the delay in replying, we did not have any email alert on Feature Request (until today). It is too late for our 1.0 release but we will check this out, QALab is designed to show a trend, it is not showing 'exact' data (like the types of bugs over time etc...) But we will check this. Benoit ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1494312&group_id=140880 |
|
From: <be...@us...> - 2007-04-19 23:49:49
|
Revision: 296
http://svn.sourceforge.net/qalab/?rev=296&view=rev
Author: benoitx
Date: 2007-04-19 16:49:48 -0700 (Thu, 19 Apr 2007)
Log Message:
-----------
Re-written the FindBugs merger in order to cope with both XDOC and XML outputs from Findbugs.
Adding the Jakarta Commons Lang as test cases for new FindBugs.
Added Paths:
-----------
trunk/qalab/src/test/java/net/objectlab/qalab/parser/commons-lang-2.3-findbugs-feedback-xdoc.xml
trunk/qalab/src/test/java/net/objectlab/qalab/parser/commons-lang-2.3-findbugs-feedback.xml
Added: trunk/qalab/src/test/java/net/objectlab/qalab/parser/commons-lang-2.3-findbugs-feedback-xdoc.xml
===================================================================
--- trunk/qalab/src/test/java/net/objectlab/qalab/parser/commons-lang-2.3-findbugs-feedback-xdoc.xml (rev 0)
+++ trunk/qalab/src/test/java/net/objectlab/qalab/parser/commons-lang-2.3-findbugs-feedback-xdoc.xml 2007-04-19 23:49:48 UTC (rev 296)
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<BugCollection>
+ <file classname="org.apache.commons.lang.BooleanUtils">
+ <BugInstance type="ES_COMPARING_PARAMETER_STRING_WITH_EQ" priority="High" message="ES: Comparison of String parameter using == or != in org.apache.commons.lang.BooleanUtils.toBoolean(String) " line="653"/>
+ </file>
+ <file classname="org.apache.commons.lang.Entities$BinaryEntityMap">
+ <BugInstance type="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW" priority="Normal" message="IM: Computation of average could overflow in org.apache.commons.lang.Entities$BinaryEntityMap.binarySearch(int)" line="683"/>
+ </file>
+ <file classname="org.apache.commons.lang.IntHashMap">
+ <BugInstance type="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" priority="Normal" message="Se: org.apache.commons.lang.IntHashMap.table is transient but org.apache.commons.lang.IntHashMap isn't Serializable" line="-1"/>
+ <BugInstance type="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" priority="Normal" message="Se: org.apache.commons.lang.IntHashMap.count is transient but org.apache.commons.lang.IntHashMap isn't Serializable" line="-1"/>
+ </file>
+ <file classname="org.apache.commons.lang.NumberUtils">
+ <BugInstance type="SF_SWITCH_FALLTHROUGH" priority="Normal" message="SF: Switch statement found in org.apache.commons.lang.NumberUtils.createNumber(String) where one case falls through to the next case" line="215"/>
+ </file>
+ <file classname="org.apache.commons.lang.StringUtils">
+ <BugInstance type="ES_COMPARING_PARAMETER_STRING_WITH_EQ" priority="High" message="ES: Comparison of String parameter using == or != in org.apache.commons.lang.StringUtils.indexOfDifference(String,String) " line="4919"/>
+ </file>
+ <file classname="org.apache.commons.lang.builder.ReflectionToStringBuilder">
+ <BugInstance type="EI_EXPOSE_REP" priority="Normal" message="EI: org.apache.commons.lang.builder.ReflectionToStringBuilder.getExcludeFieldNames() may expose internal representation by returning org.apache.commons.lang.builder.ReflectionToStringBuilder.excludeFieldNames" line="621"/>
+ </file>
+ <file classname="org.apache.commons.lang.exception.ExceptionUtils">
+ <BugInstance type="REC_CATCH_EXCEPTION" priority="Normal" message="REC: Method org.apache.commons.lang.exception.ExceptionUtils.<static initializer>() catches Exception, but Exception is not thrown in the try block and RuntimeException is not explicitly caught" line="97"/>
+ </file>
+ <file classname="org.apache.commons.lang.math.DoubleRange">
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="Normal" message="Se: The field org.apache.commons.lang.math.DoubleRange.hashCode is transient but isn't set by deserialization" line="-1"/>
+ </file>
+ <file classname="org.apache.commons.lang.math.FloatRange">
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="Normal" message="Se: The field org.apache.commons.lang.math.FloatRange.hashCode is transient but isn't set by deserialization" line="-1"/>
+ </file>
+ <file classname="org.apache.commons.lang.math.Fraction">
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="Normal" message="Se: The field org.apache.commons.lang.math.Fraction.toProperString is transient but isn't set by deserialization" line="-1"/>
+ </file>
+ <file classname="org.apache.commons.lang.math.IntRange">
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="Normal" message="Se: The field org.apache.commons.lang.math.IntRange.hashCode is transient but isn't set by deserialization" line="-1"/>
+ </file>
+ <file classname="org.apache.commons.lang.math.JVMRandom">
+ <BugInstance type="DM_NEXTINT_VIA_NEXTDOUBLE" priority="Normal" message="Dm: Method org.apache.commons.lang.math.JVMRandom.nextInt(int) uses the nextDouble method of Random to generate a random integer; using nextInt is more efficient" line="109"/>
+ </file>
+ <file classname="org.apache.commons.lang.math.LongRange">
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="Normal" message="Se: The field org.apache.commons.lang.math.LongRange.hashCode is transient but isn't set by deserialization" line="-1"/>
+ </file>
+ <file classname="org.apache.commons.lang.math.NumberRange">
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="Normal" message="Se: The field org.apache.commons.lang.math.NumberRange.hashCode is transient but isn't set by deserialization" line="-1"/>
+ </file>
+ <file classname="org.apache.commons.lang.math.NumberUtils">
+ <BugInstance type="SF_SWITCH_FALLTHROUGH" priority="Normal" message="SF: Switch statement found in org.apache.commons.lang.math.NumberUtils.createNumber(String) where one case falls through to the next case" line="474"/>
+ </file>
+ <file classname="org.apache.commons.lang.text.StrBuilder">
+ <BugInstance type="CN_IDIOM" priority="Normal" message="CN: Class org.apache.commons.lang.text.StrBuilder implements Cloneable but does not define or use clone method" line="-1"/>
+ </file>
+ <file classname="org.apache.commons.lang.text.StrTokenizer">
+ <BugInstance type="CN_IDIOM_NO_SUPER_CALL" priority="Normal" message="CN: clone method org.apache.commons.lang.text.StrTokenizer.clone() does not call super.clone()" line="1088"/>
+ <BugInstance type="EI_EXPOSE_REP2" priority="Normal" message="EI2: org.apache.commons.lang.text.StrTokenizer.StrTokenizer(char[]) may expose internal representation by storing an externally mutable object into org.apache.commons.lang.text.StrTokenizer.chars" line="330"/>
+ <BugInstance type="EI_EXPOSE_REP2" priority="Normal" message="EI2: org.apache.commons.lang.text.StrTokenizer.reset(char[]) may expose internal representation by storing an externally mutable object into org.apache.commons.lang.text.StrTokenizer.chars" line="511"/>
+ </file>
+ <file classname="org.apache.commons.lang.exception.NestableDelegate">
+ <BugInstance type="MS_SHOULD_BE_FINAL" priority="Normal" message="MS: org.apache.commons.lang.exception.NestableDelegate.topDown isn't final but should be" line="78"/>
+ <BugInstance type="MS_SHOULD_BE_FINAL" priority="Normal" message="MS: org.apache.commons.lang.exception.NestableDelegate.trimStackFrames isn't final but should be" line="88"/>
+ <BugInstance type="MS_SHOULD_BE_FINAL" priority="Normal" message="MS: org.apache.commons.lang.exception.NestableDelegate.matchSubclasses isn't final but should be" line="98"/>
+ </file>
+ <file classname="org.apache.commons.lang.IntHashMap$Entry">
+ <BugInstance type="URF_UNREAD_FIELD" priority="Normal" message="UrF: Unread field: org.apache.commons.lang.IntHashMap$Entry.key" line="-1"/>
+ </file>
+ <Errors/>
+</BugCollection>
Added: trunk/qalab/src/test/java/net/objectlab/qalab/parser/commons-lang-2.3-findbugs-feedback.xml
===================================================================
--- trunk/qalab/src/test/java/net/objectlab/qalab/parser/commons-lang-2.3-findbugs-feedback.xml (rev 0)
+++ trunk/qalab/src/test/java/net/objectlab/qalab/parser/commons-lang-2.3-findbugs-feedback.xml 2007-04-19 23:49:48 UTC (rev 296)
@@ -0,0 +1,812 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<BugCollection version="1.1.1" sequence="0" timestamp="1176869309176" analysisTimestamp="1176869314023" release="">
+ <Project filename="<<unnamed project>>">
+ <Jar>/Users/john/tools/commons-lang-2.3-src/target/classes</Jar>
+ <SrcDir>/Users/john/tools/commons-lang-2.3-src/src/java</SrcDir>
+ </Project>
+ <BugInstance type="ES_COMPARING_PARAMETER_STRING_WITH_EQ" priority="1" abbrev="ES" category="BAD_PRACTICE" uid="0" instanceHash="78ba436b5efdcec0558d2ee62261f6cf" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Comparison of String parameter using == or !=</ShortMessage>
+ <LongMessage>Comparison of String parameter using == or != in org.apache.commons.lang.BooleanUtils.toBoolean(String) </LongMessage>
+ <Class classname="org.apache.commons.lang.BooleanUtils">
+ <SourceLine classname="org.apache.commons.lang.BooleanUtils" sourcefile="BooleanUtils.java" sourcepath="org/apache/commons/lang/BooleanUtils.java">
+ <Message>In BooleanUtils.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.BooleanUtils</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.BooleanUtils" name="toBoolean" signature="(Ljava/lang/String;)Z" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.BooleanUtils" start="653" end="696" startBytecode="0" endBytecode="173" sourcefile="BooleanUtils.java" sourcepath="org/apache/commons/lang/BooleanUtils.java"/>
+ <Message>In method org.apache.commons.lang.BooleanUtils.toBoolean(String)</Message>
+ </Method>
+ <Type descriptor="Ljava/lang/String;">
+ <Message>Type java.lang.String</Message>
+ </Type>
+ <SourceLine classname="org.apache.commons.lang.BooleanUtils" start="653" end="653" startBytecode="3" endBytecode="3" sourcefile="BooleanUtils.java" sourcepath="org/apache/commons/lang/BooleanUtils.java">
+ <Message>At BooleanUtils.java:[line 653]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW" priority="2" abbrev="IM" category="STYLE" uid="1" instanceHash="3cb6305f863ce61d7715e51c72549dbb" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Computation of average could overflow</ShortMessage>
+ <LongMessage>Computation of average could overflow in org.apache.commons.lang.Entities$BinaryEntityMap.binarySearch(int)</LongMessage>
+ <Class classname="org.apache.commons.lang.Entities$BinaryEntityMap">
+ <SourceLine classname="org.apache.commons.lang.Entities$BinaryEntityMap" sourcefile="Entities.java" sourcepath="org/apache/commons/lang/Entities.java">
+ <Message>In Entities.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.Entities$BinaryEntityMap</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.Entities$BinaryEntityMap" name="binarySearch" signature="(I)I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.Entities$BinaryEntityMap" start="678" end="693" startBytecode="0" endBytecode="68" sourcefile="Entities.java" sourcepath="org/apache/commons/lang/Entities.java"/>
+ <Message>In method org.apache.commons.lang.Entities$BinaryEntityMap.binarySearch(int)</Message>
+ </Method>
+ <SourceLine classname="org.apache.commons.lang.Entities$BinaryEntityMap" start="683" end="683" startBytecode="27" endBytecode="27" sourcefile="Entities.java" sourcepath="org/apache/commons/lang/Entities.java">
+ <Message>At Entities.java:[line 683]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" priority="2" abbrev="Se" category="STYLE" uid="3" instanceHash="e89d080a85f8231f09af926ba1a1ff9a" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Transient field of class that isn't Serializable. </ShortMessage>
+ <LongMessage>org.apache.commons.lang.IntHashMap.count is transient but org.apache.commons.lang.IntHashMap isn't Serializable</LongMessage>
+ <Class classname="org.apache.commons.lang.IntHashMap">
+ <SourceLine classname="org.apache.commons.lang.IntHashMap" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.IntHashMap</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.IntHashMap" name="count" signature="I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.IntHashMap" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.IntHashMap.count</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.IntHashMap" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java" synthetic="true">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" priority="2" abbrev="Se" category="STYLE" uid="2" instanceHash="65c8975b5764f1d2cfd87ad835088a8" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Transient field of class that isn't Serializable. </ShortMessage>
+ <LongMessage>org.apache.commons.lang.IntHashMap.table is transient but org.apache.commons.lang.IntHashMap isn't Serializable</LongMessage>
+ <Class classname="org.apache.commons.lang.IntHashMap">
+ <SourceLine classname="org.apache.commons.lang.IntHashMap" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.IntHashMap</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.IntHashMap" name="table" signature="[Lorg/apache/commons/lang/IntHashMap$Entry;" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.IntHashMap" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.IntHashMap.table</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.IntHashMap" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java" synthetic="true">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="URF_UNREAD_FIELD" priority="2" abbrev="UrF" category="PERFORMANCE" uid="23" instanceHash="8926acffb9cc1498e5ec4782c60ba246" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Unread field</ShortMessage>
+ <LongMessage>Unread field: org.apache.commons.lang.IntHashMap$Entry.key</LongMessage>
+ <Class classname="org.apache.commons.lang.IntHashMap$Entry">
+ <SourceLine classname="org.apache.commons.lang.IntHashMap$Entry" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.IntHashMap$Entry</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.IntHashMap$Entry" name="key" signature="I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.IntHashMap$Entry" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.IntHashMap$Entry.key</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.IntHashMap$Entry" sourcefile="IntHashMap.java" sourcepath="org/apache/commons/lang/IntHashMap.java" synthetic="true">
+ <Message>In IntHashMap.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SF_SWITCH_FALLTHROUGH" priority="2" abbrev="SF" category="STYLE" uid="4" instanceHash="bf133195e0c95f5bf19e89aa72c5de84" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Switch statement found where one case falls through to the next case</ShortMessage>
+ <LongMessage>Switch statement found in org.apache.commons.lang.NumberUtils.createNumber(String) where one case falls through to the next case</LongMessage>
+ <Class classname="org.apache.commons.lang.NumberUtils">
+ <SourceLine classname="org.apache.commons.lang.NumberUtils" sourcefile="NumberUtils.java" sourcepath="org/apache/commons/lang/NumberUtils.java">
+ <Message>In NumberUtils.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.NumberUtils</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.NumberUtils" name="createNumber" signature="(Ljava/lang/String;)Ljava/lang/Number;" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.NumberUtils" start="139" end="281" startBytecode="0" endBytecode="694" sourcefile="NumberUtils.java" sourcepath="org/apache/commons/lang/NumberUtils.java"/>
+ <Message>In method org.apache.commons.lang.NumberUtils.createNumber(String)</Message>
+ </Method>
+ <SourceLine classname="org.apache.commons.lang.NumberUtils" start="215" end="222" startBytecode="453" endBytecode="455" sourcefile="NumberUtils.java" sourcepath="org/apache/commons/lang/NumberUtils.java">
+ <Message>At NumberUtils.java:[lines 215-222]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="ES_COMPARING_PARAMETER_STRING_WITH_EQ" priority="1" abbrev="ES" category="BAD_PRACTICE" uid="5" instanceHash="27f7dbc398871d75e14a3e87b7e599a0" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Comparison of String parameter using == or !=</ShortMessage>
+ <LongMessage>Comparison of String parameter using == or != in org.apache.commons.lang.StringUtils.indexOfDifference(String,String) </LongMessage>
+ <Class classname="org.apache.commons.lang.StringUtils">
+ <SourceLine classname="org.apache.commons.lang.StringUtils" sourcefile="StringUtils.java" sourcepath="org/apache/commons/lang/StringUtils.java">
+ <Message>In StringUtils.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.StringUtils</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.StringUtils" name="indexOfDifference" signature="(Ljava/lang/String;Ljava/lang/String;)I" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.StringUtils" start="4919" end="4934" startBytecode="0" endBytecode="42" sourcefile="StringUtils.java" sourcepath="org/apache/commons/lang/StringUtils.java"/>
+ <Message>In method org.apache.commons.lang.StringUtils.indexOfDifference(String,String)</Message>
+ </Method>
+ <Type descriptor="Ljava/lang/String;">
+ <Message>Type java.lang.String</Message>
+ </Type>
+ <SourceLine classname="org.apache.commons.lang.StringUtils" start="4919" end="4919" startBytecode="2" endBytecode="2" sourcefile="StringUtils.java" sourcepath="org/apache/commons/lang/StringUtils.java">
+ <Message>At StringUtils.java:[line 4919]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="EI_EXPOSE_REP" priority="2" abbrev="EI" category="MALICIOUS_CODE" uid="6" instanceHash="b568f7ecb19164e4763a1f598eb942c7" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Method may expose internal representation by returning reference to mutable object</ShortMessage>
+ <LongMessage>org.apache.commons.lang.builder.ReflectionToStringBuilder.getExcludeFieldNames() may expose internal representation by returning org.apache.commons.lang.builder.ReflectionToStringBuilder.excludeFieldNames</LongMessage>
+ <Class classname="org.apache.commons.lang.builder.ReflectionToStringBuilder">
+ <SourceLine classname="org.apache.commons.lang.builder.ReflectionToStringBuilder" sourcefile="ReflectionToStringBuilder.java" sourcepath="org/apache/commons/lang/builder/ReflectionToStringBuilder.java">
+ <Message>In ReflectionToStringBuilder.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.builder.ReflectionToStringBuilder</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.builder.ReflectionToStringBuilder" name="getExcludeFieldNames" signature="()[Ljava/lang/String;" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.builder.ReflectionToStringBuilder" start="621" end="621" startBytecode="0" endBytecode="4" sourcefile="ReflectionToStringBuilder.java" sourcepath="org/apache/commons/lang/builder/ReflectionToStringBuilder.java"/>
+ <Message>In method org.apache.commons.lang.builder.ReflectionToStringBuilder.getExcludeFieldNames()</Message>
+ </Method>
+ <Field classname="org.apache.commons.lang.builder.ReflectionToStringBuilder" name="excludeFieldNames" signature="[Ljava/lang/String;" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.builder.ReflectionToStringBuilder" sourcefile="ReflectionToStringBuilder.java" sourcepath="org/apache/commons/lang/builder/ReflectionToStringBuilder.java">
+ <Message>In ReflectionToStringBuilder.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.builder.ReflectionToStringBuilder.excludeFieldNames</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.builder.ReflectionToStringBuilder" start="621" end="621" startBytecode="4" endBytecode="4" sourcefile="ReflectionToStringBuilder.java" sourcepath="org/apache/commons/lang/builder/ReflectionToStringBuilder.java">
+ <Message>At ReflectionToStringBuilder.java:[line 621]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="REC_CATCH_EXCEPTION" priority="2" abbrev="REC" category="STYLE" uid="7" instanceHash="62b7e7cbf09a28f981c09f262b56ec06" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>java.lang.Exception is caught when Exception is not thrown</ShortMessage>
+ <LongMessage>Method org.apache.commons.lang.exception.ExceptionUtils.<static initializer>() catches Exception, but Exception is not thrown in the try block and RuntimeException is not explicitly caught</LongMessage>
+ <Class classname="org.apache.commons.lang.exception.ExceptionUtils">
+ <SourceLine classname="org.apache.commons.lang.exception.ExceptionUtils" sourcefile="ExceptionUtils.java" sourcepath="org/apache/commons/lang/exception/ExceptionUtils.java">
+ <Message>In ExceptionUtils.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.exception.ExceptionUtils</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.exception.ExceptionUtils" name="<clinit>" signature="()V" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.exception.ExceptionUtils" start="62" end="101" startBytecode="0" endBytecode="177" sourcefile="ExceptionUtils.java" sourcepath="org/apache/commons/lang/exception/ExceptionUtils.java"/>
+ <Message>In method org.apache.commons.lang.exception.ExceptionUtils.<static initializer>()</Message>
+ </Method>
+ <SourceLine classname="org.apache.commons.lang.exception.ExceptionUtils" start="97" end="97" startBytecode="170" endBytecode="170" sourcefile="ExceptionUtils.java" sourcepath="org/apache/commons/lang/exception/ExceptionUtils.java">
+ <Message>At ExceptionUtils.java:[line 97]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="MS_SHOULD_BE_FINAL" priority="2" abbrev="MS" category="MALICIOUS_CODE" uid="22" instanceHash="7c8e307e76a7c516c1331291ee83c4c7" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Field isn't final but should be</ShortMessage>
+ <LongMessage>org.apache.commons.lang.exception.NestableDelegate.matchSubclasses isn't final but should be</LongMessage>
+ <Class classname="org.apache.commons.lang.exception.NestableDelegate">
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>In NestableDelegate.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.exception.NestableDelegate</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.exception.NestableDelegate" name="matchSubclasses" signature="Z" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>In NestableDelegate.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.exception.NestableDelegate.matchSubclasses</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" start="98" end="98" startBytecode="9" endBytecode="9" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>At NestableDelegate.java:[line 98]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="MS_SHOULD_BE_FINAL" priority="2" abbrev="MS" category="MALICIOUS_CODE" uid="20" instanceHash="870a95bb2bfff85358364dfa6c7d85b2" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Field isn't final but should be</ShortMessage>
+ <LongMessage>org.apache.commons.lang.exception.NestableDelegate.topDown isn't final but should be</LongMessage>
+ <Class classname="org.apache.commons.lang.exception.NestableDelegate">
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>In NestableDelegate.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.exception.NestableDelegate</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.exception.NestableDelegate" name="topDown" signature="Z" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>In NestableDelegate.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.exception.NestableDelegate.topDown</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" start="78" end="78" startBytecode="1" endBytecode="1" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>At NestableDelegate.java:[line 78]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="MS_SHOULD_BE_FINAL" priority="2" abbrev="MS" category="MALICIOUS_CODE" uid="21" instanceHash="2e19f3feca807b3ff0f06d9b003b49eb" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Field isn't final but should be</ShortMessage>
+ <LongMessage>org.apache.commons.lang.exception.NestableDelegate.trimStackFrames isn't final but should be</LongMessage>
+ <Class classname="org.apache.commons.lang.exception.NestableDelegate">
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>In NestableDelegate.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.exception.NestableDelegate</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.exception.NestableDelegate" name="trimStackFrames" signature="Z" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>In NestableDelegate.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.exception.NestableDelegate.trimStackFrames</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.exception.NestableDelegate" start="88" end="88" startBytecode="5" endBytecode="5" sourcefile="NestableDelegate.java" sourcepath="org/apache/commons/lang/exception/NestableDelegate.java">
+ <Message>At NestableDelegate.java:[line 88]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="2" abbrev="Se" category="BAD_PRACTICE" uid="8" instanceHash="1a61f9983361dae667e940441a1b66f5" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Transient field that isn't set by deserialization. </ShortMessage>
+ <LongMessage>The field org.apache.commons.lang.math.DoubleRange.hashCode is transient but isn't set by deserialization</LongMessage>
+ <Class classname="org.apache.commons.lang.math.DoubleRange">
+ <SourceLine classname="org.apache.commons.lang.math.DoubleRange" sourcefile="DoubleRange.java" sourcepath="org/apache/commons/lang/math/DoubleRange.java">
+ <Message>In DoubleRange.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.math.DoubleRange</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.math.DoubleRange" name="hashCode" signature="I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.math.DoubleRange" sourcefile="DoubleRange.java" sourcepath="org/apache/commons/lang/math/DoubleRange.java">
+ <Message>In DoubleRange.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.math.DoubleRange.hashCode</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.math.DoubleRange" sourcefile="DoubleRange.java" sourcepath="org/apache/commons/lang/math/DoubleRange.java" synthetic="true">
+ <Message>In DoubleRange.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="2" abbrev="Se" category="BAD_PRACTICE" uid="9" instanceHash="8480bcf2d98f41ddfc8fff30bc634a2a" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Transient field that isn't set by deserialization. </ShortMessage>
+ <LongMessage>The field org.apache.commons.lang.math.FloatRange.hashCode is transient but isn't set by deserialization</LongMessage>
+ <Class classname="org.apache.commons.lang.math.FloatRange">
+ <SourceLine classname="org.apache.commons.lang.math.FloatRange" sourcefile="FloatRange.java" sourcepath="org/apache/commons/lang/math/FloatRange.java">
+ <Message>In FloatRange.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.math.FloatRange</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.math.FloatRange" name="hashCode" signature="I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.math.FloatRange" sourcefile="FloatRange.java" sourcepath="org/apache/commons/lang/math/FloatRange.java">
+ <Message>In FloatRange.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.math.FloatRange.hashCode</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.math.FloatRange" sourcefile="FloatRange.java" sourcepath="org/apache/commons/lang/math/FloatRange.java" synthetic="true">
+ <Message>In FloatRange.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="2" abbrev="Se" category="BAD_PRACTICE" uid="10" instanceHash="2999cc4fea6ac1281e7861acf3905fbd" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Transient field that isn't set by deserialization. </ShortMessage>
+ <LongMessage>The field org.apache.commons.lang.math.Fraction.toProperString is transient but isn't set by deserialization</LongMessage>
+ <Class classname="org.apache.commons.lang.math.Fraction">
+ <SourceLine classname="org.apache.commons.lang.math.Fraction" sourcefile="Fraction.java" sourcepath="org/apache/commons/lang/math/Fraction.java">
+ <Message>In Fraction.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.math.Fraction</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.math.Fraction" name="toProperString" signature="Ljava/lang/String;" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.math.Fraction" sourcefile="Fraction.java" sourcepath="org/apache/commons/lang/math/Fraction.java">
+ <Message>In Fraction.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.math.Fraction.toProperString</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.math.Fraction" sourcefile="Fraction.java" sourcepath="org/apache/commons/lang/math/Fraction.java" synthetic="true">
+ <Message>In Fraction.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="2" abbrev="Se" category="BAD_PRACTICE" uid="11" instanceHash="683a84a9b38bf2452ec4c7559423ddfd" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Transient field that isn't set by deserialization. </ShortMessage>
+ <LongMessage>The field org.apache.commons.lang.math.IntRange.hashCode is transient but isn't set by deserialization</LongMessage>
+ <Class classname="org.apache.commons.lang.math.IntRange">
+ <SourceLine classname="org.apache.commons.lang.math.IntRange" sourcefile="IntRange.java" sourcepath="org/apache/commons/lang/math/IntRange.java">
+ <Message>In IntRange.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.math.IntRange</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.math.IntRange" name="hashCode" signature="I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.math.IntRange" sourcefile="IntRange.java" sourcepath="org/apache/commons/lang/math/IntRange.java">
+ <Message>In IntRange.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.math.IntRange.hashCode</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.math.IntRange" sourcefile="IntRange.java" sourcepath="org/apache/commons/lang/math/IntRange.java" synthetic="true">
+ <Message>In IntRange.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="DM_NEXTINT_VIA_NEXTDOUBLE" priority="2" abbrev="Dm" category="PERFORMANCE" uid="12" instanceHash="28620addb336a6b034a9f9d287cc032f" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Use the nextInt method of Random rather than nextDouble to generate a random integer</ShortMessage>
+ <LongMessage>Method org.apache.commons.lang.math.JVMRandom.nextInt(int) uses the nextDouble method of Random to generate a random integer; using nextInt is more efficient</LongMessage>
+ <Class classname="org.apache.commons.lang.math.JVMRandom">
+ <SourceLine classname="org.apache.commons.lang.math.JVMRandom" sourcefile="JVMRandom.java" sourcepath="org/apache/commons/lang/math/JVMRandom.java">
+ <Message>In JVMRandom.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.math.JVMRandom</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.math.JVMRandom" name="nextInt" signature="(I)I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.math.JVMRandom" start="103" end="109" startBytecode="0" endBytecode="21" sourcefile="JVMRandom.java" sourcepath="org/apache/commons/lang/math/JVMRandom.java"/>
+ <Message>In method org.apache.commons.lang.math.JVMRandom.nextInt(int)</Message>
+ </Method>
+ <SourceLine classname="org.apache.commons.lang.math.JVMRandom" start="109" end="109" startBytecode="20" endBytecode="20" sourcefile="JVMRandom.java" sourcepath="org/apache/commons/lang/math/JVMRandom.java">
+ <Message>At JVMRandom.java:[line 109]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="2" abbrev="Se" category="BAD_PRACTICE" uid="13" instanceHash="205dc7013294bf33495ec0803c1acdaf" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Transient field that isn't set by deserialization. </ShortMessage>
+ <LongMessage>The field org.apache.commons.lang.math.LongRange.hashCode is transient but isn't set by deserialization</LongMessage>
+ <Class classname="org.apache.commons.lang.math.LongRange">
+ <SourceLine classname="org.apache.commons.lang.math.LongRange" sourcefile="LongRange.java" sourcepath="org/apache/commons/lang/math/LongRange.java">
+ <Message>In LongRange.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.math.LongRange</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.math.LongRange" name="hashCode" signature="I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.math.LongRange" sourcefile="LongRange.java" sourcepath="org/apache/commons/lang/math/LongRange.java">
+ <Message>In LongRange.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.math.LongRange.hashCode</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.math.LongRange" sourcefile="LongRange.java" sourcepath="org/apache/commons/lang/math/LongRange.java" synthetic="true">
+ <Message>In LongRange.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SE_TRANSIENT_FIELD_NOT_RESTORED" priority="2" abbrev="Se" category="BAD_PRACTICE" uid="14" instanceHash="e741d6aaa3a88b809af17016b9d1746c" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Transient field that isn't set by deserialization. </ShortMessage>
+ <LongMessage>The field org.apache.commons.lang.math.NumberRange.hashCode is transient but isn't set by deserialization</LongMessage>
+ <Class classname="org.apache.commons.lang.math.NumberRange">
+ <SourceLine classname="org.apache.commons.lang.math.NumberRange" sourcefile="NumberRange.java" sourcepath="org/apache/commons/lang/math/NumberRange.java">
+ <Message>In NumberRange.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.math.NumberRange</Message>
+ </Class>
+ <Field classname="org.apache.commons.lang.math.NumberRange" name="hashCode" signature="I" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.math.NumberRange" sourcefile="NumberRange.java" sourcepath="org/apache/commons/lang/math/NumberRange.java">
+ <Message>In NumberRange.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.math.NumberRange.hashCode</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.math.NumberRange" sourcefile="NumberRange.java" sourcepath="org/apache/commons/lang/math/NumberRange.java" synthetic="true">
+ <Message>In NumberRange.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="SF_SWITCH_FALLTHROUGH" priority="2" abbrev="SF" category="STYLE" uid="15" instanceHash="8527c0b774e556fa87ba919bbb97a36c" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Switch statement found where one case falls through to the next case</ShortMessage>
+ <LongMessage>Switch statement found in org.apache.commons.lang.math.NumberUtils.createNumber(String) where one case falls through to the next case</LongMessage>
+ <Class classname="org.apache.commons.lang.math.NumberUtils">
+ <SourceLine classname="org.apache.commons.lang.math.NumberUtils" sourcefile="NumberUtils.java" sourcepath="org/apache/commons/lang/math/NumberUtils.java">
+ <Message>In NumberUtils.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.math.NumberUtils</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.math.NumberUtils" name="createNumber" signature="(Ljava/lang/String;)Ljava/lang/Number;" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.math.NumberUtils" start="398" end="540" startBytecode="0" endBytecode="694" sourcefile="NumberUtils.java" sourcepath="org/apache/commons/lang/math/NumberUtils.java"/>
+ <Message>In method org.apache.commons.lang.math.NumberUtils.createNumber(String)</Message>
+ </Method>
+ <SourceLine classname="org.apache.commons.lang.math.NumberUtils" start="474" end="481" startBytecode="453" endBytecode="455" sourcefile="NumberUtils.java" sourcepath="org/apache/commons/lang/math/NumberUtils.java">
+ <Message>At NumberUtils.java:[lines 474-481]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="CN_IDIOM" priority="2" abbrev="CN" category="BAD_PRACTICE" uid="16" instanceHash="cd68aab6a251bb55df4ea04e61fdd9f2" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Class implements Cloneable but does not define or use clone method</ShortMessage>
+ <LongMessage>Class org.apache.commons.lang.text.StrBuilder implements Cloneable but does not define or use clone method</LongMessage>
+ <Class classname="org.apache.commons.lang.text.StrBuilder">
+ <SourceLine classname="org.apache.commons.lang.text.StrBuilder" sourcefile="StrBuilder.java" sourcepath="org/apache/commons/lang/text/StrBuilder.java">
+ <Message>In StrBuilder.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.text.StrBuilder</Message>
+ </Class>
+ <SourceLine classname="org.apache.commons.lang.text.StrBuilder" sourcefile="StrBuilder.java" sourcepath="org/apache/commons/lang/text/StrBuilder.java" synthetic="true">
+ <Message>In StrBuilder.java</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="CN_IDIOM_NO_SUPER_CALL" priority="2" abbrev="CN" category="BAD_PRACTICE" uid="17" instanceHash="66463aa7dadfe8083de29859e28c31e7" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>clone method does not call super.clone()</ShortMessage>
+ <LongMessage>clone method org.apache.commons.lang.text.StrTokenizer.clone() does not call super.clone()</LongMessage>
+ <Class classname="org.apache.commons.lang.text.StrTokenizer">
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java">
+ <Message>In StrTokenizer.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.text.StrTokenizer</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.text.StrTokenizer" name="clone" signature="()Ljava/lang/Object;" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" start="1088" end="1090" startBytecode="0" endBytecode="7" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java"/>
+ <Message>In method org.apache.commons.lang.text.StrTokenizer.clone()</Message>
+ </Method>
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" start="1088" end="1090" startBytecode="0" endBytecode="7" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java" synthetic="true">
+ <Message>At StrTokenizer.java:[lines 1088-1090]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="EI_EXPOSE_REP2" priority="2" abbrev="EI2" category="MALICIOUS_CODE" uid="18" instanceHash="b9cb064695d6174c612f67c76b09ca38" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Method may expose internal representation by incorporating reference to mutable object</ShortMessage>
+ <LongMessage>org.apache.commons.lang.text.StrTokenizer.StrTokenizer(char[]) may expose internal representation by storing an externally mutable object into org.apache.commons.lang.text.StrTokenizer.chars</LongMessage>
+ <Class classname="org.apache.commons.lang.text.StrTokenizer">
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java">
+ <Message>In StrTokenizer.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.text.StrTokenizer</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.text.StrTokenizer" name="<init>" signature="([C)V" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" start="329" end="331" startBytecode="0" endBytecode="47" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java"/>
+ <Message>In method org.apache.commons.lang.text.StrTokenizer.StrTokenizer(char[])</Message>
+ </Method>
+ <Field classname="org.apache.commons.lang.text.StrTokenizer" name="chars" signature="[C" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java">
+ <Message>In StrTokenizer.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.text.StrTokenizer.chars</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" start="330" end="330" startBytecode="44" endBytecode="44" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java">
+ <Message>At StrTokenizer.java:[line 330]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugInstance type="EI_EXPOSE_REP2" priority="2" abbrev="EI2" category="MALICIOUS_CODE" uid="19" instanceHash="c5990f4b3b81318fc9d95e0608e64345" instanceOccurrenceNum="0" instanceOccurrenceMax="0">
+ <ShortMessage>Method may expose internal representation by incorporating reference to mutable object</ShortMessage>
+ <LongMessage>org.apache.commons.lang.text.StrTokenizer.reset(char[]) may expose internal representation by storing an externally mutable object into org.apache.commons.lang.text.StrTokenizer.chars</LongMessage>
+ <Class classname="org.apache.commons.lang.text.StrTokenizer">
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java">
+ <Message>In StrTokenizer.java</Message>
+ </SourceLine>
+ <Message>In class org.apache.commons.lang.text.StrTokenizer</Message>
+ </Class>
+ <Method classname="org.apache.commons.lang.text.StrTokenizer" name="reset" signature="([C)Lorg/apache/commons/lang/text/StrTokenizer;" isStatic="false">
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" start="510" end="512" startBytecode="0" endBytecode="11" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java"/>
+ <Message>In method org.apache.commons.lang.text.StrTokenizer.reset(char[])</Message>
+ </Method>
+ <Field classname="org.apache.commons.lang.text.StrTokenizer" name="chars" signature="[C" isStatic="true">
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java">
+ <Message>In StrTokenizer.java</Message>
+ </SourceLine>
+ <Message>Field org.apache.commons.lang.text.StrTokenizer.chars</Message>
+ </Field>
+ <SourceLine classname="org.apache.commons.lang.text.StrTokenizer" start="511" end="511" startBytecode="7" endBytecode="7" sourcefile="StrTokenizer.java" sourcepath="org/apache/commons/lang/text/StrTokenizer.java">
+ <Message>At StrTokenizer.java:[line 511]</Message>
+ </SourceLine>
+ </BugInstance>
+ <BugCategory category="PERFORMANCE">
+ <Description>Performance</Description>
+ </BugCategory>
+ <BugCategory category="BAD_PRACTICE">
+ <Description>Bad practice</Description>
+ </BugCategory>
+ <BugCategory category="MALICIOUS_CODE">
+ <Description>Malicious code vulnerability</Description>
+ </BugCategory>
+ <BugCategory category="STYLE">
+ <Description>Dodgy</Description>
+ </BugCategory>
+ <BugPattern type="CN_IDIOM" abbrev="CN" category="BAD_PRACTICE">
+ <ShortDescription>Class implements Cloneable but does not define or use clone method</ShortDescription>
+ <Details><![CDATA[
+
+<p>
+ Class implements Cloneable but does not define or
+ use the clone method.</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="EI_EXPOSE_REP2" abbrev="EI2" category="MALICIOUS_CODE">
+ <ShortDescription>Method may expose internal representation by incorporating reference to mutable object</ShortDescription>
+ <Details><![CDATA[
+
+ <p> This code stores a reference to an externally mutable object into the
+ internal representation of the object.
+ If instances
+ are accessed by untrusted code, and unchecked changes to
+ the mutable object would compromise security or other
+ important properties, you will need to do something different.
+ Storing a copy of the object is better approach in many situations.</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" abbrev="Se" category="STYLE">
+ <ShortDescription>Transient field of class that isn't Serializable. </ShortDescription>
+ <Details><![CDATA[
+
+ <p> The field is marked as transient, but the class isn't Serializable, so marking it as transient
+has absolutely no effect.
+This may be leftover marking from a previous version of the code in which the class was transient, or
+it may indicate a misunderstanding of how serialization works.
+</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="CN_IDIOM_NO_SUPER_CALL" abbrev="CN" category="BAD_PRACTICE">
+ <ShortDescription>clone method does not call super.clone()</ShortDescription>
+ <Details><![CDATA[
+
+<p> This non-final class defines a clone() method that does not call super.clone().
+If this class ("<i>A</i>") is extended by a subclass ("<i>B</i>"),
+and the subclass <i>B</i> calls super.clone(), then it is likely that
+<i>B</i>'s clone() method will return an object of type <i>A</i>,
+which violates the standard contract for clone().</p>
+
+<p> If all clone() methods call super.clone(), then they are guaranteed
+to use Object.clone(), which always returns an object of the correct type.</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="ES_COMPARING_PARAMETER_STRING_WITH_EQ" abbrev="ES" category="BAD_PRACTICE">
+ <ShortDescription>Comparison of String parameter using == or !=</ShortDescription>
+ <Details><![CDATA[
+
+ <p>This code compares a <code>java.lang.String</code> parameter for reference
+equality using the == or != operators. Requiring callers to
+pass only String constants or interned strings to a method is unnecessarily
+fragile, and rarely leads to measurable performance gains. Consider
+using the <code>equals(Object)</code> method instead.</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW" abbrev="IM" category="STYLE">
+ <ShortDescription>Computation of average could overflow</ShortDescription>
+ <Details><![CDATA[
+
+<p>The code computes the average of two integers using either division or signed right shift,
+and then uses the result as the index of an array.
+If the values being averaged are very large, this can overflow (resulting in the computation
+of a negative average). Assuming that the result is intended to be nonnegative, you
+can use an unsigned right shift instead. In other words, rather that using <code>(low+high)/2</code>,
+use <code>(low+high) >>> 1</code>
+</p>
+<p>This bug exists in many earlier implementations of binary search and merge sort.
+Martin Buchholz <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6412541">found and fixed it</a>
+in the JDK libraries, and Joshua Bloch
+<a href="http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html">widely
+publicized the bug pattern</a>.
+</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="SF_SWITCH_FALLTHROUGH" abbrev="SF" category="STYLE">
+ <ShortDescription>Switch statement found where one case falls through to the next case</ShortDescription>
+ <Details><![CDATA[
+
+ <p> This method contains a switch statement where one case branch will fall through to the next case.
+ Usually you need to end this case with a break or return.</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="MS_SHOULD_BE_FINAL" abbrev="MS" category="MALICIOUS_CODE">
+ <ShortDescription>Field isn't final but should be</ShortDescription>
+ <Details><![CDATA[
+
+ <p>
+ A mutable static field could be changed by malicious code or
+ by accident from another package.
+ The field could be made final to avoid
+ this vulnerability.</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="URF_UNREAD_FIELD" abbrev="UrF" category="PERFORMANCE">
+ <ShortDescription>Unread field</ShortDescription>
+ <Details><![CDATA[
+
+ <p> This field is never read. Consider removing it from the class.</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="EI_EXPOSE_REP" abbrev="EI" category="MALICIOUS_CODE">
+ <ShortDescription>Method may expose internal representation by returning reference to mutable object</ShortDescription>
+ <Details><![CDATA[
+
+ <p> Returning a reference to a mutable object value stored in one of the object's fields
+ exposes the internal representation of the object.
+ If instances
+ are accessed by untrusted code, and unchecked changes to
+ the mutable object would compromise security or other
+ important properties, you will need to do something different.
+ Returning a new copy of the object is better approach in many situations.</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="SE_TRANSIENT_FIELD_NOT_RESTORED" abbrev="Se" category="BAD_PRACTICE">
+ <ShortDescription>Transient field that isn't set by deserialization. </ShortDescription>
+ <Details><![CDATA[
+
+ <p> This class contains a field that is updated at multiple places in the class, thus it seems to be part of the start of the class. However, since the field is marked as transient and not set in readObject or readResolve, it will contain the default value in any
+deserialized instance of the class.
+</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="DM_NEXTINT_VIA_NEXTDOUBLE" abbrev="Dm" category="PERFORMANCE">
+ <ShortDescription>Use the nextInt method of Random rather than nextDouble to generate a random integer</ShortDescription>
+ <Details><![CDATA[
+
+ <p>If r is a java.util.Random, you can generate a random number from 0 to n-1
+using r.nextInt(n) Rather than using (int)(r.nextDouble() * n).
+</p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugPattern type="REC_CATCH_EXCEPTION" abbrev="REC" category="STYLE">
+ <ShortDescription>java.lang.Exception is caught when Exception is not thrown</ShortDescription>
+ <Details><![CDATA[
+
+ <p>
+ This method uses a try-catch block that catches Exception objects, but Exception is not
+ thrown within the try block, and RuntimeException is not explicitly caught. It is a common bug pattern to
+ say try { ... } catch (Exception e) { something } as a shorthand for catching a number of types of exception
+ each of whose catch blocks is identical, but this construct also accidentally catches RuntimeException as well,
+ masking potential bugs.
+ </p>
+
+ ]]></Details>
+ </BugPattern>
+ <BugCode abbrev="MS">
+ <Description>Mutable static field</Description>
+ </BugCode>
+ <BugCode abbrev="EI2">
+ <Description>Storing reference to mutable object</Description>
+ </BugCode>
+ <BugCode abbrev="REC">
+ <Description>RuntimeException capture</Description>
+ </BugCode>
+ <BugCode abbrev="UrF">
+ <Description>Unread field</Description>
+ </BugCode>
+ <BugCode abbrev="IM">
+ <Description>Questionable integer math</Description>
+ </BugCode>
+ <BugCode abbrev="CN">
+ <Description>Bad implementation of cloneable idiom</Description>
+ </BugCode>
+ <BugCode abbrev="SF">
+ <Description>Switch case falls through</Description>
+ </BugCode>
+ <BugCode abbrev="ES">
+ <Description>Checking String equality using == or !=</Description>
+ </BugCode>
+ <BugCode abbrev="Dm">
+ <Description>Dubious method used</Description>
+ </BugCode>
+ <BugCode abbrev="EI">
+ <Description>Method returning array may expose internal representation</Description>
+ </BugCode>
+ <BugCode abbrev="Se">
+ <Description>Incorrect definition of Serializable class</Description>
+ </BugCode>
+ <Errors></Errors>
+ <FindBugsSummary timestamp="Tue, 17 Apr 2007 23:08:29 -0500" total_classes="124" total_bugs="24" total_size="12466" num_packages="9" cpu_seconds="68.43" clock_seconds="82.34" peak_mbytes="58.43" gc_seconds="19.66" priority_2="22" priority_1="2">
+ <PackageStats package="org.apache.commons.lang" total_bugs="7" total_types="38" total_size="4778" priority_2="5" priority_1="2">
+ <ClassStats class="org.apache.commons.lang.ArrayUtils" interface="false" size="1161" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.BitField" interface="false" size="49" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.BooleanUtils" interface="false" size="200" bugs="1" priority_1="1"/>
+ <ClassStats class="org.apache.commons.lang.CharEncoding" interface="false" size="17" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.CharRange" interface="false" size="63" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.CharSet" interface="false" size="81" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.CharSetUtils" interface="false" size="98" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.CharUtils" interface="false" size="92" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.ClassUtils" interface="false" size="239" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.Entities" interface="false" size="128" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.Entities$ArrayEntityMap" interface="false" size="44" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.Entities$BinaryEntityMap" interface="false" size="38" bugs="1" priority_2="1"/>
+ <ClassStats class="org.apache.commons.lang.Entities$EntityMap" interface="true" size="4" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.Entities$HashEntityMap" interface="false" size="6" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.Entities$LookupEntityMap" interface="false" size="19" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.Entities$MapIntMap" interface="false" size="16" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.Entities$PrimitiveEntityMap" interface="false" size="18" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.Entities$TreeEntityMap" interface="false" size="6" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.IllegalClassException" interface="false" size="13" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.IncompleteArgumentException" interface="false" size="10" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.IntHashMap" interface="false" size="111" bugs="2" priority_2="2"/>
+ <ClassStats class="org.apache.commons.lang.IntHashMap$Entry" interface="false" size="12" bugs="1" priority_2="1"/>
+ <ClassStats class="org.apache.commons.lang.LocaleUtils" interface="false" size="91" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.NotImplementedException" interface="false" size="59" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.NullArgumentException" interface="false" size="5" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.NumberRange" interface="false" size="62" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.NumberUtils" interface="false" size="216" bugs="1" priority_2="1"/>
+ <ClassStats class="org.apache.commons.lang.ObjectUtils" interface="false" size="39" bugs="0"/>
+ <ClassStats class="org.apache.commons.lang.ObjectUtils$Null" interface="false" s...
[truncated message content] |
|
From: SourceForge.net <no...@so...> - 2007-04-19 23:48:08
|
Feature Requests item #1649664, was opened at 2007-02-01 11:13 Message generated for change (Comment added) made by benoitx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1649664&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: maven 2 plugin Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Martin Brownlie (martinbrownlie) Assigned to: Nobody/Anonymous (nobody) Summary: report aggregation Initial Comment: The plugin (as I understand it) aggregates PMD,Checkstyle etc into qalab.xml and generates reports. In multi-module projects this means that you get a qalab report for each module. For the projects I work on I needed this rolled up again so i can have a QALab report at the overall project level. i.e. take each of the individual module qalab.xml and combine them so i can have the qalab report accross the entire project. ---------------------------------------------------------------------- >Comment By: Benoit Xhenseval (benoitx) Date: 2007-04-19 23:48 Message: Logged In: YES user_id=358115 Originator: NO QALab 1.1 will have the notion of a project and module in the ID field in XML. This will help aggregation. I know that a company has developed an aggregator, I'm in touch with them... it would be great if they could contribute it... as the licence kind of require them to do... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1649664&group_id=140880 |
|
From: SourceForge.net <no...@so...> - 2007-04-19 23:46:26
|
Feature Requests item #1654454, was opened at 2007-02-07 18:42 Message generated for change (Comment added) made by benoitx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1654454&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: maven 2 plugin Group: None >Status: Closed Resolution: None Priority: 5 Private: No Submitted By: Christophe DENEUX (cdeneux) Assigned to: Nobody/Anonymous (nobody) Summary: Add support of "diff" reference Initial Comment: Hi, I'm using the maven-qalab-plugin. I use the report "movers". On the column "diff", can you add a link to something like "diff" cross-ref that shows the source code updates ? So, it will be easy to see why the report "mover" show an entry. I have no idea how can you implement that. I think that will be not easy because I have not found that generate a report "diff". If I found something that can help you, I will update this issue. Thanks a lot, Christophe DENEUX Capgemini Sud ---------------------------------------------------------------------- >Comment By: Benoit Xhenseval (benoitx) Date: 2007-04-19 23:46 Message: Logged In: YES user_id=358115 Originator: NO Hi Christophe, I had a quick look at this. QALab does not work directly with source code, the diff could be rather complex as QALab would not know what version of the code was used to calculate the statistics (we're working on the output of those QA tools, not the source code). At the moment, I'd consider this request as probably outside the scope of QALab. Unless somebody is willing to do it, I will close this issue in order to avoid false hopes... I hope you understand. Bien a vous depuis London, Benoit ---------------------------------------------------------------------- Comment By: Christophe DENEUX (cdeneux) Date: 2007-03-04 15:20 Message: Logged In: YES user_id=1374106 Originator: YES I think that the jdiff-maven-plugin (http://mojo.codehaus.org/jdiff-maven-plugin/howto.html) should be used to generate the "diff cross ref" report. Christophe ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1654454&group_id=140880 |
|
From: SourceForge.net <no...@so...> - 2007-04-19 23:43:28
|
Feature Requests item #1501617, was opened at 2006-06-06 12:52 Message generated for change (Comment added) made by benoitx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1501617&group_id=140880 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Support for new format Group: None Status: Open Resolution: None Priority: 4 Private: No Submitted By: DaveCorley (heavydawson) Assigned to: Benoit Xhenseval (benoitx) Summary: Add support for Clover Initial Comment: Support for the xml reports of Clover would be great! ---------------------------------------------------------------------- >Comment By: Benoit Xhenseval (benoitx) Date: 2007-04-19 23:43 Message: Logged In: YES user_id=358115 Originator: NO Emma is coming.... Anyone interested in CLOVER? Could anyone post a Clover xml file, where it is usually stored on Maven 1 and Maven 2 and how to ensure that Closer report is xml... I'd like to have a go at some point... Thanks Benoit ---------------------------------------------------------------------- Comment By: Benoit Xhenseval (benoitx) Date: 2006-11-27 09:26 Message: Logged In: YES user_id=358115 Originator: NO could anyone do this or post a Clover xml file, where it is usually stored on Maven 1 and Maven 2 and how to ensure that Closer report is xml... Thanks Benoit ---------------------------------------------------------------------- Comment By: SourceForge Robot (sf-robot) Date: 2006-11-27 03:20 Message: Logged In: YES user_id=1312539 Originator: NO This Tracker item was closed automatically by the system. It was previously set to a Pending status, and the original submitter did not respond within 14 days (the time period specified by the administrator of this Tracker). ---------------------------------------------------------------------- Comment By: Benoit Xhenseval (benoitx) Date: 2006-11-12 19:34 Message: Logged In: YES user_id=358115 Noted, could the anonymous person who said "I'll be doing this" back in June... We would like this support too... ---------------------------------------------------------------------- Comment By: DaveCorley (heavydawson) Date: 2006-07-27 16:56 Message: Logged In: YES user_id=1025393 Hey Benoit, Just wondering if you had a rough idea when the next release of qalab might be? We're eager to get that Clover support.... ;-D ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2006-06-15 11:33 Message: Logged In: NO I'll be doing this ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=747720&aid=1501617&group_id=140880 |
|
From: <be...@us...> - 2007-04-19 23:41:03
|
Revision: 295
http://svn.sourceforge.net/qalab/?rev=295&view=rev
Author: benoitx
Date: 2007-04-19 16:40:58 -0700 (Thu, 19 Apr 2007)
Log Message:
-----------
Re-written the FindBugs merger in order to cope with both XDOC and XML outputs from Findbugs.
and it does it transparently... how cool is that! :-)
Modified Paths:
--------------
trunk/qalab/qalab.xml
trunk/qalab/src/site/changes.xml
trunk/qalab/src/test/java/net/objectlab/qalab/parser/FindBugsStatMergeTest.java
Modified: trunk/qalab/qalab.xml
===================================================================
--- trunk/qalab/qalab.xml 2007-04-09 14:09:02 UTC (rev 294)
+++ trunk/qalab/qalab.xml 2007-04-19 23:40:58 UTC (rev 295)
@@ -2847,6 +2847,8 @@
<result date="2007-04-06" statvalue="96" type="cobertura-branch"/>
<result date="2007-04-06" statvalue="1" type="pmd"/>
<result date="2007-04-09" statvalue="1" type="findbugs"/>
+ <result date="2007-04-09" statvalue="6" type="findbugs"/>
+ <result date="2007-04-09" statvalue="1" type="findbugs"/>
<result date="2007-04-09" statvalue="19" type="checkstyle"/>
<result date="2007-04-09" statvalue="6" type="findbugs"/>
<result date="2007-04-09" statvalue="1" type="findbugs"/>
Modified: trunk/qalab/src/site/changes.xml
===================================================================
--- trunk/qalab/src/site/changes.xml 2007-04-09 14:09:02 UTC (rev 294)
+++ trunk/qalab/src/site/changes.xml 2007-04-19 23:40:58 UTC (rev 295)
@@ -29,7 +29,8 @@
<author email="qa...@ob...">Benoit Xhenseval</author>
</properties>
<body>
- <release version="1.1" date="in SVN" description="Maintenance + Spider chart">
+ <release version="1.1" date="in SVN" description="Maintenance + Spider chart + Emma + FindBugs xml">
+ <action dev="benoitx" type="add">Re-written the FindBugs StatMerge to cope transparently with the XDOC or XML generated by FindBugs. Thanks to John Brugge and Danilo Stitz for the test files.</action>
<action dev="benoitx" type="add" issue="1607990" due-to="Robert Crawford">Added support for <a href="http://emma.sourceforge.net">Emma</a>.</action>
<action dev="benoitx" type="add">New version 1.2 for qalab.xml, the migration is transparent and adds 'project' and 'module' attributes on summaryresult and file
in order to move towards a consolidated qalab.xml (also required by the DB export).</action>
Modified: trunk/qalab/src/test/java/net/objectlab/qalab/parser/FindBugsStatMergeTest.java
===================================================================
--- trunk/qalab/src/test/java/net/objectlab/qalab/parser/FindBugsStatMergeTest.java 2007-04-09 14:09:02 UTC (rev 294)
+++ trunk/qalab/src/test/java/net/objectlab/qalab/parser/FindBugsStatMergeTest.java 2007-04-19 23:40:58 UTC (rev 295)
@@ -43,6 +43,7 @@
import net.objectlab.qalab.exporter.ConsoleExporter;
import net.objectlab.qalab.exporter.QALabXMLExporter;
+import net.objectlab.qalab.util.ConsoleLogger;
import net.objectlab.qalab.util.SilentLogger;
import org.xml.sax.InputSource;
@@ -75,23 +76,17 @@
*/
public void testMergeWithConsole() {
try {
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), new ConsoleExporter());
- }
- catch (IllegalAccessException e) {
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), new ConsoleExporter());
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
}
@@ -103,43 +98,33 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "empty-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "empty-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), exporter);
checkSummary(exporter.getDocument(), 1, 3, 2);
checkFileCount(exporter.getDocument(), 2, 3);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
}
@@ -153,8 +138,7 @@
File file = new File(fileName);
if (file.exists()) {
- assertTrue("Delete File: " + file.getAbsolutePath(),
- file.delete());
+ assertTrue("Delete File: " + file.getAbsolutePath(), file.delete());
}
Properties properties = new Properties();
@@ -166,24 +150,19 @@
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), exporter);
- System.out.println(streamToString(exporter.getDocument()));
+ // System.out.println(streamToString(exporter.getDocument()));
checkDTDPresent(exporter.getDocument());
checkSummary(exporter.getDocument(), 1, 3, 2);
checkFileCount(exporter.getDocument(), 2, 3);
@@ -191,20 +170,15 @@
exporter.save();
if (file.exists()) {
- assertTrue("Delete File at the end: " + file.getAbsolutePath(),
- file.delete());
+ assertTrue("Delete File at the end: " + file.getAbsolutePath(), file.delete());
}
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
- }
- catch (IOException e) {
+ } catch (IOException e) {
fail(e.toString());
}
}
@@ -216,44 +190,34 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "empty-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "empty-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "findbugs-noviolations.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("findbugs-noviolations.xml")), exporter);
checkDTDPresent(exporter.getDocument());
checkSummary(exporter.getDocument(), 0, 0, 0);
checkFileCount(exporter.getDocument(), 0, 0);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
}
@@ -265,45 +229,34 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "one-set-findbugs-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "one-set-findbugs-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "findbugs-noviolations.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("findbugs-noviolations.xml")), exporter);
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 1, new int[] { 3 },
- new int[] { 2 }, new String[] { "findbugs" });
+ checkSummary(exporter.getDocument(), 1, new int[] { 3 }, new int[] { 2 }, new String[] { "findbugs" });
checkFileCount(exporter.getDocument(), 2, 3);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
}
@@ -315,52 +268,38 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "one-set-findbugs-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "one-set-findbugs-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
- exporter.setQuiet(true);
- exporter.setTaskLogger(new SilentLogger());
+ exporter.setQuiet(false);
+ exporter.setTaskLogger(new ConsoleLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), exporter);
- System.out.println(streamToString(exporter.getDocument()));
+ // System.out.println(streamToString(exporter.getDocument()));
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 2, new int[] { 3, 3 },
- new int[] { 2, 2 }, new String[] { "findbugs", "findbugs" });
+ checkSummary(exporter.getDocument(), 2, new int[] { 3, 3 }, new int[] { 2, 2 }, new String[] { "findbugs", "findbugs" });
checkFileCount(exporter.getDocument(), 2, 6);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
- catch (IOException e) {
- fail(e.toString());
- }
}
/**
@@ -370,53 +309,125 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "one-set-checkstyle-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "one-set-checkstyle-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), exporter);
- System.out.println(streamToString(exporter.getDocument()));
-
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 2, new int[] { 168, 3 },
- new int[] { 25, 2 }, new String[] { "checkstyle", "findbugs" });
+ checkSummary(exporter.getDocument(), 2, new int[] { 168, 3 }, new int[] { 25, 2 }, new String[] { "checkstyle", "findbugs" });
checkFileCount(exporter.getDocument(), 7, 171);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
+ } catch (InstantiationException e) {
+ fail(e.toString());
}
- catch (InstantiationException e) {
+ }
+
+ /**
+ * test simple merge with the OLD FindBugs XDOC format and empty qalab.
+ */
+ public void testMergeEmptyFindBugsXDOCForCommonsLang() {
+ try {
+ Properties properties = new Properties();
+
+ properties.setProperty("qalab.merge.output.resourcename", "empty-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+
+ QALabXMLExporter exporter = new QALabXMLExporter();
+
+ exporter.setQuiet(true);
+ exporter.setTaskLogger(new SilentLogger());
+
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+
+ merger.setQuiet(true);
+ merger.setSrcDir("src/main/java");
+ merger.setTaskLogger(new SilentLogger());
+
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
+ exporter.configure(properties);
+
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("commons-lang-2.3-findbugs-feedback-xdoc.xml")),
+ exporter);
+
+ // System.out.println(streamToString(exporter.getDocument()));
+
+ checkDTDPresent(exporter.getDocument());
+ checkSummary(exporter.getDocument(), 1, new int[] { 24 }, new int[] { 18 }, new String[] { "findbugs" });
+ checkFileCount(exporter.getDocument(), 18, 24);
+ } catch (IllegalAccessException e) {
fail(e.toString());
+ } catch (ClassNotFoundException e) {
+ fail(e.toString());
+ } catch (InstantiationException e) {
+ fail(e.toString());
+ // } catch (IOException e) {
+ // fail(e.toString());
}
- catch (IOException e) {
+ }
+
+ /**
+ * test simple merge with the NEW FindBugs XML format and empty qalab.
+ */
+ public void testMergeEmptyFindBugsXMLForCommonsLang() {
+ try {
+ Properties properties = new Properties();
+
+ properties.setProperty("qalab.merge.output.resourcename", "empty-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+
+ QALabXMLExporter exporter = new QALabXMLExporter();
+
+ exporter.setQuiet(true);
+ exporter.setTaskLogger(new ConsoleLogger());
+
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+
+ merger.setQuiet(true);
+ merger.setSrcDir("src/main/java");
+ merger.setTaskLogger(new ConsoleLogger());
+
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
+ exporter.configure(properties);
+
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("commons-lang-2.3-findbugs-feedback.xml")), exporter);
+
+ // System.out.println(streamToString(exporter.getDocument()));
+
+ checkDTDPresent(exporter.getDocument());
+ checkSummary(exporter.getDocument(), 1, new int[] { 24 }, new int[] { 18 }, new String[] { "findbugs" });
+ checkFileCount(exporter.getDocument(), 18, 24);
+ } catch (IllegalAccessException e) {
fail(e.toString());
+ } catch (ClassNotFoundException e) {
+ fail(e.toString());
+ } catch (InstantiationException e) {
+ fail(e.toString());
+ // } catch (IOException e) {
+ // fail(e.toString());
}
}
+
}
/*
* ObjectLab is sponsoring QALab
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|