log.info("jtl version=" + JMeterUtils.getProperty("file_format.testlog")); // String sampleLog = "C:/eclipse3/workspace/jmeter-21/bin/testfiles/sample_log1.jtl"; String sampleLog = "testfiles/sample_log1.jtl"; String sampleLog2 = "testfiles/sample_log1b.jtl"; String sampleLog3 = "testfiles/sample_log1c.jtl"; JTLData input = new JTLData(); JTLData input2 = new JTLData(); JTLData input3 = new JTLData(); input.setDataSource(sampleLog); input.loadData(); input2.setDataSource(sampleLog2); input2.loadData(); input3.setDataSource(sampleLog3); input3.loadData(); assertTrue((input.getStartTimestamp() > 0)); assertTrue((input.getEndTimestamp() > input.getStartTimestamp())); assertTrue((input.getURLs().size() > 0)); log.info("URL count=" + input.getURLs().size()); java.util.ArrayList list = new java.util.ArrayList(); list.add(input); list.add(input2); list.add(input3); BarChart bchart = new BarChart(); bchart.setTitle("Sample Chart"); bchart.setCaption("Sample"); bchart.setName("Sample"); bchart.setYAxis("milliseconds"); bchart.setYLabel("Test Runs"); bchart.setXAxis(AbstractTable.REPORT_TABLE_90_PERCENT); bchart.setXLabel(AbstractChart.X_DATA_DATE_LABEL); bchart.setURL("jakarta_home"); JComponent gr = bchart.renderChart(list); assertNotNull(gr); SaveGraphicsService serv = new SaveGraphicsService(); String filename = bchart.getTitle(); filename = filename.replace(' ','_'); if (!"true".equalsIgnoreCase(System.getProperty("java.awt.headless"))){ serv.saveJComponent("./testfiles/" + filename,SaveGraphicsService.PNG,gr); }
log.info("jtl version=" + JMeterUtils.getProperty("file_format.testlog")); // String sampleLog = "C:/eclipse3/workspace/jmeter-21/bin/testfiles/sample_log1.jtl"; String sampleLog = "testfiles/sample_log1.jtl"; String sampleLog2 = "testfiles/sample_log1b.jtl"; String sampleLog3 = "testfiles/sample_log1c.jtl"; JTLData input = new JTLData(); JTLData input2 = new JTLData(); JTLData input3 = new JTLData(); input.setDataSource(sampleLog); input.loadData(); input2.setDataSource(sampleLog2); input2.loadData(); input3.setDataSource(sampleLog3); input3.loadData(); assertTrue((input.getStartTimestamp() > 0)); assertTrue((input.getEndTimestamp() > input.getStartTimestamp())); assertTrue((input.getURLs().size() > 0)); log.info("URL count=" + input.getURLs().size()); java.util.ArrayList list = new java.util.ArrayList(); list.add(input); list.add(input2); list.add(input3); LineChart lgraph = new LineChart(); lgraph.setTitle("Sample Line Graph"); lgraph.setCaption("Sample"); lgraph.setName("Sample"); lgraph.setYAxis("milliseconds"); lgraph.setYLabel("Test Runs"); lgraph.setXAxis(AbstractTable.REPORT_TABLE_MAX); lgraph.setXLabel(AbstractChart.X_DATA_FILENAME_LABEL); lgraph.setURLs("jakarta_home,jmeter_home"); JComponent gr = lgraph.renderChart(list); assertNotNull(gr); SaveGraphicsService serv = new SaveGraphicsService(); String filename = lgraph.getTitle(); filename = filename.replace(' ','_'); if (!"true".equalsIgnoreCase(System.getProperty("java.awt.headless"))){ serv.saveJComponent("./testfiles/" + filename,SaveGraphicsService.PNG,gr); }
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/test/src/org/apache/jmeter/testelement/BarChartTest.java File path: /jakarta-jmeter-2.3.2/test/src/org/apache/jmeter/testelement/LineGraphTest.java
Method name: void testGenerateBarChart() Method name: void testGenerateLineChart()
Number of AST nodes: 37 Number of AST nodes: 37
1
log.info("jtl version=" + JMeterUtils.getProperty("file_format.testlog"));
1
log.info("jtl version=" + JMeterUtils.getProperty("file_format.testlog"));
2
        // String sampleLog = "C:/eclipse3/workspace/jmeter-21/bin/testfiles/sample_log1.jtl";
2
        // String sampleLog = "C:/eclipse3/workspace/jmeter-21/bin/testfiles/sample_log1.jtl";
3
        String sampleLog = "testfiles/sample_log1.jtl";
3
        String sampleLog = "testfiles/sample_log1.jtl";
4
        String sampleLog2 = "testfiles/sample_log1b.jtl";
4
        String sampleLog2 = "testfiles/sample_log1b.jtl";
5
        String sampleLog3 = "testfiles/sample_log1c.jtl";
5
        String sampleLog3 = "testfiles/sample_log1c.jtl";
6
        JTLData input = new JTLData();
6
        JTLData input = new JTLData();
7
        JTLData input2 = new JTLData();
7
        JTLData input2 = new JTLData();
8
        JTLData input3 = new JTLData();
8
        JTLData input3 = new JTLData();
9
        input.setDataSource(sampleLog);
9
        input.setDataSource(sampleLog);
10
        input.loadData();
10
        input.loadData();
11
        input2.setDataSource(sampleLog2);
11
        input2.setDataSource(sampleLog2);
12
        input2.loadData();
12
        input2.loadData();
13
        input3.setDataSource(sampleLog3);
13
        input3.setDataSource(sampleLog3);
14
        input3.loadData();
14
        input3.loadData();
15
        assertTrue((input.getStartTimestamp() > 0));
15
        assertTrue((input.getStartTimestamp() > 0));
16
        assertTrue((input.getEndTimestamp() > input.getStartTimestamp()));
16
        assertTrue((input.getEndTimestamp() > input.getStartTimestamp()));
17
        assertTrue((input.getURLs().size() > 0));
17
        assertTrue((input.getURLs().size() > 0));
18
        log.info("URL count=" + input.getURLs().size());
18
        log.info("URL count=" + input.getURLs().size());
19
        java.util.ArrayList list = new java.util.ArrayList();
19
        java.util.ArrayList list = new java.util.ArrayList();
20
        list.add(input);
20
        list.add(input);
21
        list.add(input2);
21
        list.add(input2);
22
        list.add(input3);
22
        list.add(input3);
23
        BarChart bchart = new BarChart();
23
        LineChart lgraph = new LineChart();
24
        bchart.setTitle("Sample Chart");
24
        lgraph.setTitle("Sample Line Graph");
25
        bchart.setCaption("Sample");
25
        lgraph.setCaption("Sample");
26
        bchart.setName("Sample");
26
        lgraph.setName("Sample");
27
        bchart.setYAxis("milliseconds");
27
        lgraph.setYAxis("milliseconds");
28
        bchart.setYLabel("Test Runs");
28
        lgraph.setYLabel("Test Runs");
29
        bchart.setXAxis(AbstractTable.REPORT_TABLE_90_PERCENT);
29
        lgraph.setXAxis(AbstractTable.REPORT_TABLE_MAX);
30
        bchart.setXLabel(AbstractChart.X_DATA_DATE_LABEL);
30
        lgraph.setXLabel(AbstractChart.X_DATA_FILENAME_LABEL);
31
        bchart.setURL("jakarta_home");
31
        lgraph.setURLs("jakarta_home,jmeter_home");
32
        JComponent gr = bchart.renderChart(list);
32
        JComponent gr = lgraph.renderChart(list);
33
        assertNotNull(gr);
33
        assertNotNull(gr);
34
        SaveGraphicsService serv = new SaveGraphicsService();
34
        SaveGraphicsService serv = new SaveGraphicsService();
35
        String filename = bchart.getTitle();
35
        String filename = lgraph.getTitle();
36
        filename = filename.replace(' ','_');
36
        filename = filename.replace(' ','_');
37
        if (!"true".equalsIgnoreCase(System.getProperty("java.awt.headless"))){
37
        if (!"true".equalsIgnoreCase(System.getProperty("java.awt.headless"))){
38
            serv.saveJComponent("./testfiles/" + filename,SaveGraphicsService.PNG,gr);
38
            serv.saveJComponent("./testfiles/" + filename,SaveGraphicsService.PNG,gr);
39
        }
39
        }
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)0.3
Clones locationClones are in different classes having the same super class
Number of node comparisons507
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements37
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)98.4
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    log.info("jtl version=" + JMeterUtils.getProperty("file_format.testlog"));
    1
    log.info("jtl version=" + JMeterUtils.getProperty("file_format.testlog"));
    2
    String sampleLog = "testfiles/sample_log1.jtl";
    2
    String sampleLog = "testfiles/sample_log1.jtl";
    3
    String sampleLog2 = "testfiles/sample_log1b.jtl";
    3
    String sampleLog2 = "testfiles/sample_log1b.jtl";
    4
    String sampleLog3 = "testfiles/sample_log1c.jtl";
    4
    String sampleLog3 = "testfiles/sample_log1c.jtl";
    5
    JTLData input = new JTLData();
    5
    JTLData input = new JTLData();
    6
    JTLData input2 = new JTLData();
    6
    JTLData input2 = new JTLData();
    7
    JTLData input3 = new JTLData();
    7
    JTLData input3 = new JTLData();
    8
    input.setDataSource(sampleLog);
    8
    input.setDataSource(sampleLog);
    9
    input.loadData();
    9
    input.loadData();
    10
    input2.setDataSource(sampleLog2);
    10
    input2.setDataSource(sampleLog2);
    11
    input2.loadData();
    11
    input2.loadData();
    12
    input3.setDataSource(sampleLog3);
    12
    input3.setDataSource(sampleLog3);
    13
    input3.loadData();
    13
    input3.loadData();
    14
    assertTrue((input.getStartTimestamp() > 0));
    14
    assertTrue((input.getStartTimestamp() > 0));
    15
    assertTrue((input.getEndTimestamp() > input.getStartTimestamp()));
    15
    assertTrue((input.getEndTimestamp() > input.getStartTimestamp()));
    16
    assertTrue((input.getURLs().size() > 0));
    16
    assertTrue((input.getURLs().size() > 0));
    17
    log.info("URL count=" + input.getURLs().size());
    17
    log.info("URL count=" + input.getURLs().size());
    18
    java.util.ArrayList list = new java.util.ArrayList();
    18
    java.util.ArrayList list = new java.util.ArrayList();
    19
    list.add(input);
    19
    list.add(input);
    20
    list.add(input2);
    20
    list.add(input2);
    21
    list.add(input3);
    21
    list.add(input3);
    22
    BarChart bchart = new BarChart();
    22
    BarChart bchart = new BarChart();
    22
    LineChart lgraph = new LineChart();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    22
    LineChart lgraph = new LineChart();
    23
    bchart.setTitle("Sample Chart");
    23
    bchart.setTitle("Sample Chart");
    23
    lgraph.setTitle("Sample Line Graph");
    Differences
    Expression1Expression2Difference
    "Sample Chart""Sample Line Graph"LITERAL_VALUE_MISMATCH
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    23
    lgraph.setTitle("Sample Line Graph");
    24
    bchart.setCaption("Sample");
    24
    bchart.setCaption("Sample");
    24
    lgraph.setCaption("Sample");
    Differences
    Expression1Expression2Difference
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    24
    lgraph.setCaption("Sample");
    25
    bchart.setName("Sample");
    25
    bchart.setName("Sample");
    25
    lgraph.setName("Sample");
    Differences
    Expression1Expression2Difference
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    25
    lgraph.setName("Sample");
    26
    bchart.setYAxis("milliseconds");
    26
    bchart.setYAxis("milliseconds");
    26
    lgraph.setYAxis("milliseconds");
    Differences
    Expression1Expression2Difference
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    26
    lgraph.setYAxis("milliseconds");
    27
    bchart.setYLabel("Test Runs");
    27
    bchart.setYLabel("Test Runs");
    27
    lgraph.setYLabel("Test Runs");
    Differences
    Expression1Expression2Difference
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    27
    lgraph.setYLabel("Test Runs");
    28
    bchart.setXAxis(AbstractTable.REPORT_TABLE_90_PERCENT);
    28
    bchart.setXAxis(AbstractTable.REPORT_TABLE_90_PERCENT);
    28
    lgraph.setXAxis(AbstractTable.REPORT_TABLE_MAX);
    Differences
    Expression1Expression2Difference
    REPORT_TABLE_90_PERCENTREPORT_TABLE_MAXVARIABLE_NAME_MISMATCH
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    28
    lgraph.setXAxis(AbstractTable.REPORT_TABLE_MAX);
    29
    bchart.setXLabel(AbstractChart.X_DATA_DATE_LABEL);
    29
    bchart.setXLabel(AbstractChart.X_DATA_DATE_LABEL);
    29
    lgraph.setXLabel(AbstractChart.X_DATA_FILENAME_LABEL);
    Differences
    Expression1Expression2Difference
    X_DATA_DATE_LABELX_DATA_FILENAME_LABELVARIABLE_NAME_MISMATCH
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    29
    lgraph.setXLabel(AbstractChart.X_DATA_FILENAME_LABEL);
    30
    bchart.setURL("jakarta_home");
    30
    bchart.setURL("jakarta_home");
    30
    lgraph.setURLs("jakarta_home,jmeter_home");
    Differences
    Expression1Expression2Difference
    "jakarta_home""jakarta_home,jmeter_home"LITERAL_VALUE_MISMATCH
    setURLsetURLsMETHOD_INVOCATION_NAME_MISMATCH
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression bchart.setURL("jakarta_home") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression lgraph.setURLs("jakarta_home,jmeter_home") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression bchart.setURL("jakarta_home") is a void method call, and thus it cannot be parameterized
    Expression lgraph.setURLs("jakarta_home,jmeter_home") is a void method call, and thus it cannot be parameterized
    Expression bchart cannot be unified with expression lgraph , because common superclass org.apache.jmeter.testelement.AbstractChart does not declare member(s) public void setURL(java.lang.String) , public void setURLs(java.lang.String)
    30
    lgraph.setURLs("jakarta_home,jmeter_home");
    31
    JComponent gr = bchart.renderChart(list);
    31
    JComponent gr = bchart.renderChart(list);
    31
    JComponent gr = lgraph.renderChart(list);
    Differences
    Expression1Expression2Difference
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    31
    JComponent gr = lgraph.renderChart(list);
    32
    assertNotNull(gr);
    32
    assertNotNull(gr);
    33
    SaveGraphicsService serv = new SaveGraphicsService();
    33
    SaveGraphicsService serv = new SaveGraphicsService();
    34
    String filename = bchart.getTitle();
    34
    String filename = bchart.getTitle();
    34
    String filename = lgraph.getTitle();
    Differences
    Expression1Expression2Difference
    bchartlgraphVARIABLE_NAME_MISMATCH
    org.apache.jmeter.testelement.BarChartorg.apache.jmeter.testelement.LineChartSUBCLASS_TYPE_MISMATCH
    34
    String filename = lgraph.getTitle();
    35
    filename = filename.replace(' ', '_');
    35
    filename = filename.replace(' ', '_');
    36
    if (!"true".equalsIgnoreCase(System.getProperty("java.awt.headless")))
    36
    if (!"true".equalsIgnoreCase(System.getProperty("java.awt.headless")))
    37
    serv.saveJComponent("./testfiles/" + filename, SaveGraphicsService.PNG, gr);
    37
    serv.saveJComponent("./testfiles/" + filename, SaveGraphicsService.PNG, gr);
    Precondition Violations (5)
    Row Violation
    1Expression bchart.setURL("jakarta_home") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression lgraph.setURLs("jakarta_home,jmeter_home") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression bchart.setURL("jakarta_home") is a void method call, and thus it cannot be parameterized
    4Expression lgraph.setURLs("jakarta_home,jmeter_home") is a void method call, and thus it cannot be parameterized
    5Expression bchart cannot be unified with expression lgraph , because common superclass org.apache.jmeter.testelement.AbstractChart does not declare member(s) public void setURL(java.lang.String) , public void setURLs(java.lang.String)