You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by sebb <se...@gmail.com> on 2013/07/27 01:16:09 UTC
Re: svn commit: r1507449 - /jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphChart.java
On 26 July 2013 22:17, <pm...@apache.org> wrote:
> Author: pmouawad
> Date: Fri Jul 26 21:17:16 2013
> New Revision: 1507449
>
> URL: http://svn.apache.org/r1507449
> Log:
> Fixed:
> - String appending
> - Wrong division
> - Primitive value is boxed then unboxed to perform primitive coercion
>
> Modified:
> jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphChart.java
>
> Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphChart.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphChart.java?rev=1507449&r1=1507448&r2=1507449&view=diff
> ==============================================================================
> --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphChart.java (original)
> +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphChart.java Fri Jul 26 21:17:16 2013
> @@ -322,7 +322,7 @@ public class RespTimeGraphChart extends
>
> // Y Axis ruler
> try {
> - double numInterval = _height / 50; // ~a tic every 50 px
> + double numInterval = _height / 50d; // ~a tic every 50 px
> double incrYAxis = max / numInterval;
> double incrTopValue = _incrScaleYAxis;
> if (_incrScaleYAxis == 0) {
> @@ -332,7 +332,7 @@ public class RespTimeGraphChart extends
> incrTopValue = 1.0d; // Increment cannot be < 1
> }
> yaxis.setUserDefinedScale(0, incrTopValue);
> - yaxis.setNumItems(new Double(max / incrTopValue).intValue() + 1);
> + yaxis.setNumItems((int)(max / incrTopValue) + 1);
> yaxis.setShowGridLines(1);
> } catch (PropertyException e) {
> log.warn("",e);
> @@ -367,11 +367,12 @@ public class RespTimeGraphChart extends
>
> private int getTopValue(double value, int roundMode) {
> String maxStr = String.valueOf(Math.round(value));
> - String divValueStr = "1"; //$NON-NLS-1$
> + StringBuilder divValueStr = new StringBuilder(maxStr.length()+1);
> + divValueStr.append("1");
> for (int i = 1; i < maxStr.length(); i++) {
> - divValueStr += "0"; //$NON-NLS-1$
> + divValueStr.append("0"); //$NON-NLS-1$
> }
> - int divValueInt = Integer.parseInt(divValueStr);
> + int divValueInt = Integer.parseInt(divValueStr.toString());
I agree it is better to use StringBuilder rather than concatenation,
but the original code looks very odd.
It looks like it is calculating a power of 10 using a string! Can that be right?
If so, it would be better to drop the conversion to/from the string entirely.
The method needs a bit of documentation to explain what it is trying to do.
> BigDecimal round = new BigDecimal(value / divValueInt);
> round = round.setScale(0, roundMode);
> int topValue = round.intValue() * divValueInt;
>
>