boolean success = false;
try {
DefaultTableXYDataset dataset = new DefaultTableXYDataset();
XYSeries s1 = new XYSeries("Series 1", true, false);
s1.add(5.0, 5.0);
s1.add(10.0, 15.5);
s1.add(15.0, 9.5);
s1.add(20.0, 7.5);
dataset.addSeries(s1);
XYSeries s2 = new XYSeries("Series 2", true, false);
s2.add(5.0, 5.0);
s2.add(10.0, 15.5);
s2.add(15.0, 9.5);
s2.add(20.0, 3.5);
dataset.addSeries(s2);
XYPlot plot = new XYPlot(dataset,
new NumberAxis("X"), new NumberAxis("Y"),
new XYLineAndShapeRenderer());
plot.addAnnotation(new XYTitleAnnotation(5.0, 6.0,
new TextTitle("Hello World!")));
JFreeChart chart = new JFreeChart(plot);
/* BufferedImage image = */ chart.createBufferedImage(300, 200,
null);
success = true;
}
catch (NullPointerException e) {
e.printStackTrace();
success = false;
}
assertTrue(success);
try {
DefaultTableXYDataset dataset = new DefaultTableXYDataset();
XYSeries s1 = new XYSeries("Series 1", true, false);
s1.add(5.0, 5.0);
s1.add(10.0, 15.5);
s1.add(15.0, 9.5);
s1.add(20.0, 7.5);
dataset.addSeries(s1);
XYSeries s2 = new XYSeries("Series 2", true, false);
s2.add(5.0, 5.0);
s2.add(10.0, 15.5);
s2.add(15.0, 9.5);
s2.add(20.0, 3.5);
dataset.addSeries(s2);
XYPlot plot = new XYPlot(dataset,
new NumberAxis("X"), new NumberAxis("Y"),
new XYLineAndShapeRenderer());
plot.addAnnotation(new XYBoxAnnotation(10.0, 12.0, 3.0, 4.0,
new BasicStroke(1.2f), Color.red, Color.blue));
JFreeChart chart = new JFreeChart(plot);
/* BufferedImage image = */ chart.createBufferedImage(300, 200,
null);
success = true;
}
catch (NullPointerException e) {
e.printStackTrace();
success = false;
}
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/experimental/org/jfree/experimental/chart/annotations/junit/XYTitleAnnotationTests.java
|
|
File path: /jfreechart-1.0.10/tests/org/jfree/chart/annotations/junit/XYBoxAnnotationTests.java
|
Method name: void testDrawWithNullInfo()
|
|
Method name: void testDrawWithNullInfo()
|
Number of AST nodes: 21
|
|
Number of AST nodes: 19
|
|
1 | boolean success = false;↵ | | |
|
2 | try {↵ | | 1 | try {↵
|
3 | DefaultTableXYDataset dataset = new DefaultTableXYDataset();↵ | | 2 | DefaultTableXYDataset dataset = new DefaultTableXYDataset();↵
|
4 | ↵ | | |
|
5 | XYSeries s1 = new XYSeries("Series 1", true, false);↵ | | 3 | XYSeries s1 = new XYSeries("Series 1", true, false);↵
|
6 | s1.add(5.0, 5.0);↵ | | 4 | s1.add(5.0, 5.0);↵
|
7 | s1.add(10.0, 15.5);↵ | | 5 | s1.add(10.0, 15.5);↵
|
8 | s1.add(15.0, 9.5);↵ | | 6 | s1.add(15.0, 9.5);↵
|
9 | s1.add(20.0, 7.5);↵ | | 7 | s1.add(20.0, 7.5);↵
|
10 | dataset.addSeries(s1);↵ | | 8 | dataset.addSeries(s1);↵
|
11 | ↵ | | |
|
12 | XYSeries s2 = new XYSeries("Series 2", true, false);↵ | | 9 | XYSeries s2 = new XYSeries("Series 2", true, false);↵
|
13 | s2.add(5.0, 5.0);↵ | | 10 | s2.add(5.0, 5.0);↵
|
14 | s2.add(10.0, 15.5);↵ | | 11 | s2.add(10.0, 15.5);↵
|
15 | s2.add(15.0, 9.5);↵ | | 12 | s2.add(15.0, 9.5);↵
|
16 | s2.add(20.0, 3.5);↵ | | 13 | s2.add(20.0, 3.5);↵
|
17 | dataset.addSeries(s2);↵ | | 14 | dataset.addSeries(s2);↵
|
18 | XYPlot plot = new XYPlot(dataset, ↵ | | 15 | XYPlot plot = new XYPlot(dataset,↵
|
19 | new NumberAxis("X"), new NumberAxis("Y"), ↵ | | 16 | new NumberAxis("X"), new NumberAxis("Y"),↵
|
20 | new XYLineAndShapeRenderer());↵ | | 17 | new XYLineAndShapeRenderer());↵
|
21 | plot.addAnnotation(new XYTitleAnnotation(5.0, 6.0, ↵ | | 18 | plot.addAnnotation(new XYBoxAnnotation(10.0, 12.0, 3.0, 4.0,↵
|
22 | new TextTitle("Hello World!")));↵ | | 19 | new BasicStroke(1.2f), Color.red, Color.blue));↵
|
23 | JFreeChart chart = new JFreeChart(plot);↵ | | 20 | JFreeChart chart = new JFreeChart(plot);↵
|
24 | /* BufferedImage image = */ chart.createBufferedImage(300, 200, ↵ | | 21 | /* BufferedImage image = */ chart.createBufferedImage(300, 200,↵
|
25 | null);↵ | | 22 | null);↵
|
26 | success = true;↵ | | 23 | success = true;↵
|
27 | }↵ | | 24 | }↵
|
28 | catch (NullPointerException e) {↵ | | 25 | catch (NullPointerException e) {↵
|
29 | e.printStackTrace();↵ | | 26 | e.printStackTrace();↵
|
30 | success = false;↵ | | 27 | success = false;↵
|
31 | }↵ | | 28 | }
|
32 | assertTrue(success); | | | |
See real code fragment |
|
See real code fragment |
Summary
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.2 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 361 |
-
{Non-refactorable}
Mapping Summary
Number of mapped statements | 19 |
Number of unmapped statements in the first code fragment | 2 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 954.3 |
Clone type | Type 3 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
1 | boolean success = false; | | | |
2 | try | | 2 | try |
3 | DefaultTableXYDataset dataset = new DefaultTableXYDataset(); | | 3 | DefaultTableXYDataset dataset = new DefaultTableXYDataset(); |
4 | XYSeries s1 = new XYSeries("Series 1", true, false); | | 4 | XYSeries s1 = new XYSeries("Series 1", true, false); |
5 | | | 5 | |
6 | | | 6 | |
7 | | | 7 | |
8 | | | 8 | |
9 | | | 9 | |
10 | XYSeries s2 = new XYSeries("Series 2", true, false); | | 10 | XYSeries s2 = new XYSeries("Series 2", true, false); |
11 | | | 11 | |
12 | | | 12 | |
13 | | | 13 | |
14 | | | 14 | |
15 | | | 15 | |
16 | XYPlot plot = new XYPlot(dataset, new NumberAxis("X"), new NumberAxis("Y"), new XYLineAndShapeRenderer()); | | 16 | XYPlot plot = new XYPlot(dataset, new NumberAxis("X"), new NumberAxis("Y"), new XYLineAndShapeRenderer()); |
17 | plot.addAnnotation(new XYTitleAnnotation(5.0, 6.0, new TextTitle("Hello World!"))); | | 17 | plot.addAnnotation(new XYBoxAnnotation(10.0, 12.0, 3.0, 4.0, new BasicStroke(1.2f), Color.red, Color.blue)); |
18 | JFreeChart chart = new JFreeChart(plot); | | 18 | JFreeChart chart = new JFreeChart(plot); |
19 | chart.createBufferedImage(300, 200, null); | | 19 | chart.createBufferedImage(300, 200, null); |
20 | | | 20 | |
21 | assertTrue(success); | | | |
Precondition Violations (2)
Row |
Violation |
1 | Unmatched statement assertTrue(success); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Clone fragment #1 returns variables , while Clone fragment #2 returns variables success |