DefaultCategoryDataset dataset1 = new DefaultCategoryDataset(); CategoryAxis domainAxis1 = new CategoryAxis("Domain 1"); NumberAxis rangeAxis1 = new NumberAxis("Range 1"); BarRenderer renderer1 = new BarRenderer(); CategoryPlot p1 = new CategoryPlot(dataset1, domainAxis1, rangeAxis1, renderer1); CategoryAxis domainAxis2 = new CategoryAxis("Domain 2"); NumberAxis rangeAxis2 = new NumberAxis("Range 2"); BarRenderer renderer2 = new BarRenderer(); DefaultCategoryDataset dataset2 = new DefaultCategoryDataset(); p1.setDataset(1, dataset2); p1.setDomainAxis(1, domainAxis2); p1.setRangeAxis(1, rangeAxis2); p1.setRenderer(1, renderer2); CategoryPlot p2 = null; try { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(buffer); out.writeObject(p1); out.close(); ObjectInput in = new ObjectInputStream( new ByteArrayInputStream(buffer.toByteArray())); p2 = (CategoryPlot) in.readObject(); in.close(); } catch (Exception e) { fail(e.toString()); } assertEquals(p1, p2); // now check that all datasets, renderers and axes are being listened // too... CategoryAxis domainAxisA = p2.getDomainAxis(0); NumberAxis rangeAxisA = (NumberAxis) p2.getRangeAxis(0); DefaultCategoryDataset datasetA = (DefaultCategoryDataset) p2.getDataset(0); BarRenderer rendererA = (BarRenderer) p2.getRenderer(0); CategoryAxis domainAxisB = p2.getDomainAxis(1); NumberAxis rangeAxisB = (NumberAxis) p2.getRangeAxis(1); DefaultCategoryDataset datasetB = (DefaultCategoryDataset) p2.getDataset(1); BarRenderer rendererB = (BarRenderer) p2.getRenderer(1); assertTrue(datasetA.hasListener(p2)); assertTrue(domainAxisA.hasListener(p2)); assertTrue(rangeAxisA.hasListener(p2)); assertTrue(rendererA.hasListener(p2)); assertTrue(datasetB.hasListener(p2)); assertTrue(domainAxisB.hasListener(p2)); assertTrue(rangeAxisB.hasListener(p2)); assertTrue(rendererB.hasListener(p2));
XYSeriesCollection dataset1 = new XYSeriesCollection(); NumberAxis domainAxis1 = new NumberAxis("Domain 1"); NumberAxis rangeAxis1 = new NumberAxis("Range 1"); StandardXYItemRenderer renderer1 = new StandardXYItemRenderer(); XYPlot p1 = new XYPlot(dataset1, domainAxis1, rangeAxis1, renderer1); NumberAxis domainAxis2 = new NumberAxis("Domain 2"); NumberAxis rangeAxis2 = new NumberAxis("Range 2"); StandardXYItemRenderer renderer2 = new StandardXYItemRenderer(); XYSeriesCollection dataset2 = new XYSeriesCollection(); p1.setDataset(1, dataset2); p1.setDomainAxis(1, domainAxis2); p1.setRangeAxis(1, rangeAxis2); p1.setRenderer(1, renderer2); XYPlot p2 = null; try { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(buffer); out.writeObject(p1); out.close(); ObjectInput in = new ObjectInputStream( new ByteArrayInputStream(buffer.toByteArray()) ); p2 = (XYPlot) in.readObject(); in.close(); } catch (Exception e) { fail(e.toString()); } assertEquals(p1, p2); // now check that all datasets, renderers and axes are being listened // too... NumberAxis domainAxisA = (NumberAxis) p2.getDomainAxis(0); NumberAxis rangeAxisA = (NumberAxis) p2.getRangeAxis(0); XYSeriesCollection datasetA = (XYSeriesCollection) p2.getDataset(0); StandardXYItemRenderer rendererA = (StandardXYItemRenderer) p2.getRenderer(0); NumberAxis domainAxisB = (NumberAxis) p2.getDomainAxis(1); NumberAxis rangeAxisB = (NumberAxis) p2.getRangeAxis(1); XYSeriesCollection datasetB = (XYSeriesCollection) p2.getDataset(1); StandardXYItemRenderer rendererB = (StandardXYItemRenderer) p2.getRenderer(1); assertTrue(datasetA.hasListener(p2)); assertTrue(domainAxisA.hasListener(p2)); assertTrue(rangeAxisA.hasListener(p2)); assertTrue(rendererA.hasListener(p2)); assertTrue(datasetB.hasListener(p2)); assertTrue(domainAxisB.hasListener(p2)); assertTrue(rangeAxisB.hasListener(p2)); assertTrue(rendererB.hasListener(p2));
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/tests/org/jfree/chart/plot/junit/CategoryPlotTests.java File path: /jfreechart-1.0.10/tests/org/jfree/chart/plot/junit/XYPlotTests.java
Method name: void testSerialization5() Method name: void testSerialization5()
Number of AST nodes: 39 Number of AST nodes: 39
1
DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
1
XYSeriesCollection dataset1 = new XYSeriesCollection();
2
        CategoryAxis domainAxis1 = new CategoryAxis("Domain 1");
2
        NumberAxis domainAxis1 = new NumberAxis("Domain 1");
3
        NumberAxis rangeAxis1 = new NumberAxis("Range 1");
3
        NumberAxis rangeAxis1 = new NumberAxis("Range 1");
4
        BarRenderer renderer1 = new BarRenderer();
4
        StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
5
        CategoryPlot p1 = new CategoryPlot(dataset1, domainAxis1, rangeAxis1,
5
        XYPlot p1 = new XYPlot(dataset1, domainAxis1, rangeAxis1,
6
                renderer1);
6
 renderer1);
7
        CategoryAxis domainAxis2 = new CategoryAxis("Domain 2");
7
        NumberAxis domainAxis2 = new NumberAxis("Domain 2");
8
        NumberAxis rangeAxis2 = new NumberAxis("Range 2");
8
        NumberAxis rangeAxis2 = new NumberAxis("Range 2");
9
        BarRenderer renderer2 = new BarRenderer();
9
        StandardXYItemRenderer renderer2 = new StandardXYItemRenderer();
10
        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
10
        XYSeriesCollection dataset2 = new XYSeriesCollection();
11
        p1.setDataset(1, dataset2);
11
        p1.setDataset(1, dataset2);
12
        p1.setDomainAxis(1, domainAxis2);
12
        p1.setDomainAxis(1, domainAxis2);
13
        p1.setRangeAxis(1, rangeAxis2);
13
        p1.setRangeAxis(1, rangeAxis2);
14
        p1.setRenderer(1, renderer2);
14
        p1.setRenderer(1, renderer2);
15
        CategoryPlot p2 = null;
15
        XYPlot p2 = null;
16
        try {
16
        try {
17
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
17
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
18
            ObjectOutput out = new ObjectOutputStream(buffer);
18
            ObjectOutput out = new ObjectOutputStream(buffer);
19
            out.writeObject(p1);
19
            out.writeObject(p1);
20
            out.close();
20
            out.close();
21
            ObjectInput in = new ObjectInputStream(
21
            ObjectInput in = new ObjectInputStream(
22
                    new ByteArrayInputStream(buffer.toByteArray())
22
                new ByteArrayInputStream(buffer.toByteArray())
23
);
23
            );
24
            p2 = (CategoryPlot) in.readObject();
24
            p2 = (XYPlot) in.readObject();
25
            in.close();
25
            in.close();
26
        }
26
        }
27
        catch (Exception e) {
27
        catch (Exception e) {
28
            fail(e.toString());
28
            fail(e.toString());
29
        }
29
        }
30
        assertEquals(p1, p2);
30
        assertEquals(p1, p2);
31
        
31
        // now check that all datasets, renderers and axes are being listened
32
        // now check that all datasets, renderers and axes are being listened 
32
        // too...
33
        // too...
33
        CategoryAxis domainAxisA = p2.getDomainAxis(0);
34
        NumberAxis domainAxisA = (NumberAxis) p2.getDomainAxis(0);
34
        NumberAxis rangeAxisA = (NumberAxis) p2.getRangeAxis(0);
35
        NumberAxis rangeAxisA = (NumberAxis) p2.getRangeAxis(0);
35
        DefaultCategoryDataset datasetA
36
        
36
                = (DefaultCategoryDataset) p2.getDataset(0);
37
XYSeriesCollection datasetA = (XYSeriesCollection) p2.getDataset(0);
37
        BarRenderer rendererA = (Bar
38
        StandardXYItemRenderer rendererA 
38
Renderer) p2.getRenderer(0);
39
            = (StandardXYItemRenderer) p2.getRenderer(0);
39
        CategoryAxis domainAxisB = p2.getDomainAxis(1);
40
        NumberAxis domainAxisB = (NumberAxis) p2.getDomainAxis(1);
40
        NumberAxis rangeAxisB = (NumberAxis) p2.getRangeAxis(1);
41
        NumberAxis rangeAxisB = (NumberAxis) p2.getRangeAxis(1);
41
        DefaultCategoryDataset datasetB
42
        
42
                = (DefaultCategoryDataset) p2.getDataset(1);
43
XYSeriesCollection datasetB = (XYSeriesCollection) p2.getDataset(1);
43
        BarRenderer rendererB  = (Bar
44
        StandardXYItemRenderer rendererB 
44
Renderer) p2.getRenderer(1);
45
            = (StandardXYItemRenderer) p2.getRenderer(1);
45
        assertTrue(datasetA.hasListener(p2));
46
        assertTrue(datasetA.hasListener(p2));
46
        assertTrue(domainAxisA.hasListener(p2));
47
        assertTrue(domainAxisA.hasListener(p2));
47
        assertTrue(rangeAxisA.hasListener(p2));
48
        assertTrue(rangeAxisA.hasListener(p2));
48
        assertTrue(rendererA.hasListener(p2));
49
        assertTrue(rendererA.hasListener(p2));
49
        assertTrue(datasetB.hasListener(p2));
50
        assertTrue(datasetB.hasListener(p2));
50
        assertTrue(domainAxisB.hasListener(p2));
51
        assertTrue(domainAxisB.hasListener(p2));
51
        assertTrue(rangeAxisB.hasListener(p2));
52
        assertTrue(rangeAxisB.hasListener(p2));
52
        assertTrue(rendererB.hasListener(p2));
53
        assertTrue(rendererB.hasListener(p2));
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.8
Clones locationClones are in different classes having the same super class
Number of node comparisons452
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements39
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)379.5
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
    1
    DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
    1
    XYSeriesCollection dataset1 = new XYSeriesCollection();
    Differences
    Expression1Expression2Difference
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression new DefaultCategoryDataset() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new XYSeriesCollection() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    1
    XYSeriesCollection dataset1 = new XYSeriesCollection();
    2
    CategoryAxis domainAxis1 = new CategoryAxis("Domain 1");
    2
    CategoryAxis domainAxis1 = new CategoryAxis("Domain 1");
    2
    NumberAxis domainAxis1 = new NumberAxis("Domain 1");
    Differences
    Expression1Expression2Difference
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression new CategoryAxis("Domain 1") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new NumberAxis("Domain 1") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2
    NumberAxis domainAxis1 = new NumberAxis("Domain 1");
    3
    NumberAxis rangeAxis1 = new NumberAxis("Range 1");
    3
    NumberAxis rangeAxis1 = new NumberAxis("Range 1");
    4
    BarRenderer renderer1 = new BarRenderer();
    4
    BarRenderer renderer1 = new BarRenderer();
    4
    StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
    Differences
    Expression1Expression2Difference
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression new BarRenderer() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new StandardXYItemRenderer() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4
    StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
    5
    CategoryPlot p1 = new CategoryPlot(dataset1, domainAxis1, rangeAxis1, renderer1);
    5
    CategoryPlot p1 = new CategoryPlot(dataset1, domainAxis1, rangeAxis1, renderer1);
    5
    XYPlot p1 = new XYPlot(dataset1, domainAxis1, rangeAxis1, renderer1);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression new CategoryPlot(dataset1,domainAxis1,rangeAxis1,renderer1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new XYPlot(dataset1,domainAxis1,rangeAxis1,renderer1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5
    XYPlot p1 = new XYPlot(dataset1, domainAxis1, rangeAxis1, renderer1);
    6
    CategoryAxis domainAxis2 = new CategoryAxis("Domain 2");
    6
    CategoryAxis domainAxis2 = new CategoryAxis("Domain 2");
    6
    NumberAxis domainAxis2 = new NumberAxis("Domain 2");
    Differences
    Expression1Expression2Difference
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression new CategoryAxis("Domain 2") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new NumberAxis("Domain 2") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6
    NumberAxis domainAxis2 = new NumberAxis("Domain 2");
    7
    NumberAxis rangeAxis2 = new NumberAxis("Range 2");
    7
    NumberAxis rangeAxis2 = new NumberAxis("Range 2");
    8
    BarRenderer renderer2 = new BarRenderer();
    8
    BarRenderer renderer2 = new BarRenderer();
    8
    StandardXYItemRenderer renderer2 = new StandardXYItemRenderer();
    Differences
    Expression1Expression2Difference
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression new BarRenderer() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new StandardXYItemRenderer() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8
    StandardXYItemRenderer renderer2 = new StandardXYItemRenderer();
    9
    DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
    9
    DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
    9
    XYSeriesCollection dataset2 = new XYSeriesCollection();
    Differences
    Expression1Expression2Difference
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression new DefaultCategoryDataset() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new XYSeriesCollection() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    9
    XYSeriesCollection dataset2 = new XYSeriesCollection();
    10
    p1.setDataset(1, dataset2);
    10
    p1.setDataset(1, dataset2);
    10
    p1.setDataset(1, dataset2);
    Differences
    Expression1Expression2Difference
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression dataset2 cannot be unified with expression dataset2 , because common superclass type org.jfree.data.general.AbstractDataset cannot be passed as an argument to public void setDataset(int, org.jfree.data.category.CategoryDataset)
    Expression p1 cannot be unified with expression p1 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public void setDataset(int, org.jfree.data.category.CategoryDataset) , public void setDataset(int, org.jfree.data.xy.XYDataset)
    10
    p1.setDataset(1, dataset2);
    11
    p1.setDomainAxis(1, domainAxis2);
    11
    p1.setDomainAxis(1, domainAxis2);
    11
    p1.setDomainAxis(1, domainAxis2);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression domainAxis2 cannot be unified with expression domainAxis2 , because common superclass type org.jfree.chart.axis.Axis cannot be passed as an argument to public void setDomainAxis(int, org.jfree.chart.axis.CategoryAxis)
    Expression p1 cannot be unified with expression p1 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public void setDomainAxis(int, org.jfree.chart.axis.CategoryAxis) , public void setDomainAxis(int, org.jfree.chart.axis.ValueAxis)
    11
    p1.setDomainAxis(1, domainAxis2);
    12
    p1.setRangeAxis(1, rangeAxis2);
    12
    p1.setRangeAxis(1, rangeAxis2);
    12
    p1.setRangeAxis(1, rangeAxis2);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression p1 cannot be unified with expression p1 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public void setRangeAxis(int, org.jfree.chart.axis.ValueAxis)
    12
    p1.setRangeAxis(1, rangeAxis2);
    13
    p1.setRenderer(1, renderer2);
    13
    p1.setRenderer(1, renderer2);
    13
    p1.setRenderer(1, renderer2);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression renderer2 cannot be unified with expression renderer2 , because common superclass type org.jfree.chart.renderer.AbstractRenderer cannot be passed as an argument to public void setRenderer(int, org.jfree.chart.renderer.category.CategoryItemRenderer)
    Expression p1 cannot be unified with expression p1 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public void setRenderer(int, org.jfree.chart.renderer.category.CategoryItemRenderer) , public void setRenderer(int, org.jfree.chart.renderer.xy.XYItemRenderer)
    13
    p1.setRenderer(1, renderer2);
    14
    CategoryPlot p2 = null;
    14
    CategoryPlot p2 = null;
    14
    XYPlot p2 = null;
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    14
    XYPlot p2 = null;
    15
    try
    15
    try
    16
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    16
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    17
    ObjectOutput out = new ObjectOutputStream(buffer);
    17
    ObjectOutput out = new ObjectOutputStream(buffer);
    18
    out.writeObject(p1);
    18
    out.writeObject(p1);
    18
    out.writeObject(p1);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    18
    out.writeObject(p1);
    19
    out.close();
    19
    out.close();
    20
    ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
    20
    ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
    21
    p2 = (CategoryPlot)in.readObject();
    21
    p2 = (CategoryPlot)in.readObject();
    21
    p2 = (XYPlot)in.readObject();
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression (CategoryPlot)in.readObject() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (XYPlot)in.readObject() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    21
    p2 = (XYPlot)in.readObject();
    22
    in.close();
    22
    in.close();
    23
    assertEquals(p1, p2);
    23
    assertEquals(p1, p2);
    23
    assertEquals(p1, p2);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    23
    assertEquals(p1, p2);
    24
    CategoryAxis domainAxisA = p2.getDomainAxis(0);
    24
    CategoryAxis domainAxisA = p2.getDomainAxis(0);
    24
    NumberAxis domainAxisA = (NumberAxis)p2.getDomainAxis(0);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    p2.getDomainAxis(0)(NumberAxis)p2.getDomainAxis(0)TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression p2.getDomainAxis(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (NumberAxis)p2.getDomainAxis(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    24
    NumberAxis domainAxisA = (NumberAxis)p2.getDomainAxis(0);
    25
    NumberAxis rangeAxisA = (NumberAxis)p2.getRangeAxis(0);
    25
    NumberAxis rangeAxisA = (NumberAxis)p2.getRangeAxis(0);
    25
    NumberAxis rangeAxisA = (NumberAxis)p2.getRangeAxis(0);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.chart.axis.ValueAxis getRangeAxis(int)
    25
    NumberAxis rangeAxisA = (NumberAxis)p2.getRangeAxis(0);
    26
    DefaultCategoryDataset datasetA = (DefaultCategoryDataset)p2.getDataset(0);
    26
    DefaultCategoryDataset datasetA = (DefaultCategoryDataset)p2.getDataset(0);
    26
    XYSeriesCollection datasetA = (XYSeriesCollection)p2.getDataset(0);
    Differences
    Expression1Expression2Difference
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression (DefaultCategoryDataset)p2.getDataset(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (XYSeriesCollection)p2.getDataset(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.data.category.CategoryDataset getDataset(int) , public org.jfree.data.xy.XYDataset getDataset(int)
    26
    XYSeriesCollection datasetA = (XYSeriesCollection)p2.getDataset(0);
    27
    BarRenderer rendererA = (BarRenderer)p2.getRenderer(0);
    27
    BarRenderer rendererA = (BarRenderer)p2.getRenderer(0);
    27
    StandardXYItemRenderer rendererA = (StandardXYItemRenderer)p2.getRenderer(0);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression (BarRenderer)p2.getRenderer(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (StandardXYItemRenderer)p2.getRenderer(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.chart.renderer.category.CategoryItemRenderer getRenderer(int) , public org.jfree.chart.renderer.xy.XYItemRenderer getRenderer(int)
    27
    StandardXYItemRenderer rendererA = (StandardXYItemRenderer)p2.getRenderer(0);
    28
    CategoryAxis domainAxisB = p2.getDomainAxis(1);
    28
    CategoryAxis domainAxisB = p2.getDomainAxis(1);
    28
    NumberAxis domainAxisB = (NumberAxis)p2.getDomainAxis(1);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    p2.getDomainAxis(1)(NumberAxis)p2.getDomainAxis(1)TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression p2.getDomainAxis(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (NumberAxis)p2.getDomainAxis(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    28
    NumberAxis domainAxisB = (NumberAxis)p2.getDomainAxis(1);
    29
    NumberAxis rangeAxisB = (NumberAxis)p2.getRangeAxis(1);
    29
    NumberAxis rangeAxisB = (NumberAxis)p2.getRangeAxis(1);
    29
    NumberAxis rangeAxisB = (NumberAxis)p2.getRangeAxis(1);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.chart.axis.ValueAxis getRangeAxis(int)
    29
    NumberAxis rangeAxisB = (NumberAxis)p2.getRangeAxis(1);
    30
    DefaultCategoryDataset datasetB = (DefaultCategoryDataset)p2.getDataset(1);
    30
    DefaultCategoryDataset datasetB = (DefaultCategoryDataset)p2.getDataset(1);
    30
    XYSeriesCollection datasetB = (XYSeriesCollection)p2.getDataset(1);
    Differences
    Expression1Expression2Difference
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression (DefaultCategoryDataset)p2.getDataset(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (XYSeriesCollection)p2.getDataset(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.data.category.CategoryDataset getDataset(int) , public org.jfree.data.xy.XYDataset getDataset(int)
    30
    XYSeriesCollection datasetB = (XYSeriesCollection)p2.getDataset(1);
    31
    BarRenderer rendererB = (BarRenderer)p2.getRenderer(1);
    31
    BarRenderer rendererB = (BarRenderer)p2.getRenderer(1);
    31
    StandardXYItemRenderer rendererB = (StandardXYItemRenderer)p2.getRenderer(1);
    Differences
    Expression1Expression2Difference
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression (BarRenderer)p2.getRenderer(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (StandardXYItemRenderer)p2.getRenderer(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.chart.renderer.category.CategoryItemRenderer getRenderer(int) , public org.jfree.chart.renderer.xy.XYItemRenderer getRenderer(int)
    31
    StandardXYItemRenderer rendererB = (StandardXYItemRenderer)p2.getRenderer(1);
    32
    assertTrue(datasetA.hasListener(p2));
    32
    assertTrue(datasetA.hasListener(p2));
    32
    assertTrue(datasetA.hasListener(p2));
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    32
    assertTrue(datasetA.hasListener(p2));
    33
    assertTrue(domainAxisA.hasListener(p2));
    33
    assertTrue(domainAxisA.hasListener(p2));
    33
    assertTrue(domainAxisA.hasListener(p2));
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    33
    assertTrue(domainAxisA.hasListener(p2));
    34
    assertTrue(rangeAxisA.hasListener(p2));
    34
    assertTrue(rangeAxisA.hasListener(p2));
    34
    assertTrue(rangeAxisA.hasListener(p2));
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    34
    assertTrue(rangeAxisA.hasListener(p2));
    35
    assertTrue(rendererA.hasListener(p2));
    35
    assertTrue(rendererA.hasListener(p2));
    35
    assertTrue(rendererA.hasListener(p2));
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    35
    assertTrue(rendererA.hasListener(p2));
    36
    assertTrue(datasetB.hasListener(p2));
    36
    assertTrue(datasetB.hasListener(p2));
    36
    assertTrue(datasetB.hasListener(p2));
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.data.category.DefaultCategoryDatasetorg.jfree.data.xy.XYSeriesCollectionSUBCLASS_TYPE_MISMATCH
    36
    assertTrue(datasetB.hasListener(p2));
    37
    assertTrue(domainAxisB.hasListener(p2));
    37
    assertTrue(domainAxisB.hasListener(p2));
    37
    assertTrue(domainAxisB.hasListener(p2));
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.axis.CategoryAxisorg.jfree.chart.axis.NumberAxisSUBCLASS_TYPE_MISMATCH
    37
    assertTrue(domainAxisB.hasListener(p2));
    38
    assertTrue(rangeAxisB.hasListener(p2));
    38
    assertTrue(rangeAxisB.hasListener(p2));
    38
    assertTrue(rangeAxisB.hasListener(p2));
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    38
    assertTrue(rangeAxisB.hasListener(p2));
    39
    assertTrue(rendererB.hasListener(p2));
    39
    assertTrue(rendererB.hasListener(p2));
    39
    assertTrue(rendererB.hasListener(p2));
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.CategoryPlotorg.jfree.chart.plot.XYPlotSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.renderer.category.BarRendererorg.jfree.chart.renderer.xy.StandardXYItemRendererSUBCLASS_TYPE_MISMATCH
    39
    assertTrue(rendererB.hasListener(p2));
    Precondition Violations (41)
    Row Violation
    1Expression new DefaultCategoryDataset() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression new XYSeriesCollection() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression new CategoryAxis("Domain 1") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression new NumberAxis("Domain 1") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Expression new BarRenderer() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression new StandardXYItemRenderer() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Expression new CategoryPlot(dataset1,domainAxis1,rangeAxis1,renderer1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8Expression new XYPlot(dataset1,domainAxis1,rangeAxis1,renderer1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    9Expression new CategoryAxis("Domain 2") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    10Expression new NumberAxis("Domain 2") cannot be parameterized, because it has dependencies to/from statements that will be extracted
    11Expression new BarRenderer() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    12Expression new StandardXYItemRenderer() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    13Expression new DefaultCategoryDataset() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    14Expression new XYSeriesCollection() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    15Expression dataset2 cannot be unified with expression dataset2 , because common superclass type org.jfree.data.general.AbstractDataset cannot be passed as an argument to public void setDataset(int, org.jfree.data.category.CategoryDataset)
    16Expression p1 cannot be unified with expression p1 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public void setDataset(int, org.jfree.data.category.CategoryDataset) , public void setDataset(int, org.jfree.data.xy.XYDataset)
    17Expression domainAxis2 cannot be unified with expression domainAxis2 , because common superclass type org.jfree.chart.axis.Axis cannot be passed as an argument to public void setDomainAxis(int, org.jfree.chart.axis.CategoryAxis)
    18Expression p1 cannot be unified with expression p1 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public void setDomainAxis(int, org.jfree.chart.axis.CategoryAxis) , public void setDomainAxis(int, org.jfree.chart.axis.ValueAxis)
    19Expression p1 cannot be unified with expression p1 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public void setRangeAxis(int, org.jfree.chart.axis.ValueAxis)
    20Expression renderer2 cannot be unified with expression renderer2 , because common superclass type org.jfree.chart.renderer.AbstractRenderer cannot be passed as an argument to public void setRenderer(int, org.jfree.chart.renderer.category.CategoryItemRenderer)
    21Expression p1 cannot be unified with expression p1 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public void setRenderer(int, org.jfree.chart.renderer.category.CategoryItemRenderer) , public void setRenderer(int, org.jfree.chart.renderer.xy.XYItemRenderer)
    22Expression (CategoryPlot)in.readObject() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    23Expression (XYPlot)in.readObject() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    24Expression p2.getDomainAxis(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    25Expression (NumberAxis)p2.getDomainAxis(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    26Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.chart.axis.ValueAxis getRangeAxis(int)
    27Expression (DefaultCategoryDataset)p2.getDataset(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    28Expression (XYSeriesCollection)p2.getDataset(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    29Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.data.category.CategoryDataset getDataset(int) , public org.jfree.data.xy.XYDataset getDataset(int)
    30Expression (BarRenderer)p2.getRenderer(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    31Expression (StandardXYItemRenderer)p2.getRenderer(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    32Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.chart.renderer.category.CategoryItemRenderer getRenderer(int) , public org.jfree.chart.renderer.xy.XYItemRenderer getRenderer(int)
    33Expression p2.getDomainAxis(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    34Expression (NumberAxis)p2.getDomainAxis(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    35Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.chart.axis.ValueAxis getRangeAxis(int)
    36Expression (DefaultCategoryDataset)p2.getDataset(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    37Expression (XYSeriesCollection)p2.getDataset(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    38Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.data.category.CategoryDataset getDataset(int) , public org.jfree.data.xy.XYDataset getDataset(int)
    39Expression (BarRenderer)p2.getRenderer(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    40Expression (StandardXYItemRenderer)p2.getRenderer(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    41Expression p2 cannot be unified with expression p2 , because common superclass org.jfree.chart.plot.Plot does not declare member(s) public org.jfree.chart.renderer.category.CategoryItemRenderer getRenderer(int) , public org.jfree.chart.renderer.xy.XYItemRenderer getRenderer(int)