if (entities != null) { String tip = null; PieToolTipGenerator tipster = getToolTipGenerator(); if (tipster != null) { // @mgs: using the method's return value was missing tip = tipster.generateToolTip(dataset, currentKey); } String url = null; if (getURLGenerator() != null) { url = getURLGenerator().generateURL(dataset, currentKey, getPieIndex()); } PieSectionEntity entity = new PieSectionEntity( upperArc, dataset, getPieIndex(), sectionIndex, currentKey, tip, url); entities.add(entity); }
String tip = null; XYToolTipGenerator generator = getToolTipGenerator(series, item); if (generator != null) { tip = generator.generateToolTip(dataset, series, item); } String url = null; if (getURLGenerator() != null) { url = getURLGenerator().generateURL(dataset, series, item); } XYItemEntity entity = new XYItemEntity(entityArea, dataset, series, item, tip, url); entities.add(entity);
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/src/org/jfree/chart/plot/PiePlot3D.java File path: /jfreechart-1.0.10/src/org/jfree/chart/renderer/xy/HighLowRenderer.java
Method name: void draw(Graphics2D, Rectangle2D, Point2D, PlotState, PlotRenderingInfo) Method name: void drawItem(Graphics2D, XYItemRendererState, Rectangle2D, PlotRenderingInfo, XYPlot, ValueAxis, ValueAxis, XYDataset, int, int, CrosshairState, int)
Number of AST nodes: 10 Number of AST nodes: 9
1
if (entities != null) {
2
                    String tip = null;
1
String tip = null;
3
                    PieToolTipGenerator tipster = getToolTipGenerator();
2
            XYToolTipGenerator generator = getToolTipGenerator(
4
      
3
series, item);
5
              if (tipster != null) {
4
            if (generator != null) {
6
                        // @mgs: using the method's return value was missing 
5
                
7
                        tip = tipster.generateToolTip(dataset, currentKey);
6
tip = generator.generateToolTip(dataset, 
8
       
7
series, item);
9
             }
8
            }
10
                    String url = null;
9
            String url = null;
11
                    if (getURLGenerator() != null) {
10
            if (getURLGenerator() != null) {
12
                        url = getURLGenerator().generateURL(dataset, currentKey,
11
                url = getURLGenerator().generateURL(dataset, 
13
                                getPieIndex());
14
     
12
series, item);
15
               }
13
            }
16
                    PieSectionEntity entity = new PieSectionEntity(
14
            XYItemEntity entity = new 
17
                            upperArc, dataset, getPieIndex(), sectionIndex, 
15
XYItemEntity(entityArea, dataset,
18
                            currentKey, tip, url);
16
                    series, item, tip, url);
19
                    entities.add(entity);
17
            entities.add(entity);
20
                }
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.4
Clones locationClones are in different classes
Number of node comparisons17
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements4
    Number of unmapped statements in the first code fragment3
    Number of unmapped statements in the second code fragment3
    Time elapsed for statement mapping (ms)32.7
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    199
    String tip = null;
    67
    String tip = null;
                                                                                                                                        
    68
    XYToolTipGenerator generator = getToolTipGenerator(series, item);
                                                      
    69
    if (generator != null)
                                                                                                                  
    70
    tip = generator.generateToolTip(dataset, series, item);
    200
    PieToolTipGenerator tipster = getToolTipGenerator();
                                                                                                                  
    201
    if (tipster != null)
                                                    
    202
    tip = tipster.generateToolTip(dataset, currentKey);
    202
    tip = tipster.generateToolTip(dataset, currentKey);
    Preondition Violations
    Unmatched statement tip=tipster.generateToolTip(dataset,currentKey); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                              
    203
    String url = null;
    71
    String url = null;
    204
    if (getURLGenerator() != null)
    204
    if (getURLGenerator() != null)
    72
    if (getURLGenerator() != null)
    Differences
    Expression1Expression2Difference
    org.jfree.chart.urls.PieURLGeneratororg.jfree.chart.urls.XYURLGeneratorVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.jfree.chart.urls.PieURLGenerator of variable getURLGenerator() does not match with type org.jfree.chart.urls.XYURLGenerator of variable getURLGenerator()
    • Make classes org.jfree.chart.urls.PieURLGenerator and org.jfree.chart.urls.XYURLGenerator extend a common superclass
    72
    if (getURLGenerator() != null)
    205
    url = getURLGenerator().generateURL(dataset, currentKey, getPieIndex());
    205
    url = getURLGenerator().generateURL(dataset, currentKey, getPieIndex());
    73
    url = getURLGenerator().generateURL(dataset, series, item);
    Differences
    Expression1Expression2Difference
    org.jfree.data.general.PieDatasetorg.jfree.data.xy.XYDatasetVARIABLE_TYPE_MISMATCH
    org.jfree.chart.urls.PieURLGeneratororg.jfree.chart.urls.XYURLGeneratorVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.jfree.data.general.PieDataset of variable dataset does not match with type org.jfree.data.xy.XYDataset of variable dataset
    • Make classes org.jfree.data.general.PieDataset and org.jfree.data.xy.XYDataset extend a common superclass
    Type org.jfree.chart.urls.PieURLGenerator of variable getURLGenerator() does not match with type org.jfree.chart.urls.XYURLGenerator of variable getURLGenerator()
    • Make classes org.jfree.chart.urls.PieURLGenerator and org.jfree.chart.urls.XYURLGenerator extend a common superclass
    73
    url = getURLGenerator().generateURL(dataset, series, item);
    Precondition Violations (5)
    Row Violation
    1Unmatched statement tip=tipster.generateToolTip(dataset,currentKey); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    2Type org.jfree.chart.urls.PieURLGenerator of variable getURLGenerator() does not match with type org.jfree.chart.urls.XYURLGenerator of variable getURLGenerator()
    3Type org.jfree.data.general.PieDataset of variable dataset does not match with type org.jfree.data.xy.XYDataset of variable dataset
    4Type org.jfree.chart.urls.PieURLGenerator of variable getURLGenerator() does not match with type org.jfree.chart.urls.XYURLGenerator of variable getURLGenerator()
    5Clone fragment #1 returns variables tip, url , while Clone fragment #2 returns variables tip, url