stream.defaultReadObject(); this.labelPaint = SerialUtilities.readPaint(stream); this.tickLabelPaint = SerialUtilities.readPaint(stream); this.axisLineStroke = SerialUtilities.readStroke(stream); this.axisLinePaint = SerialUtilities.readPaint(stream); this.tickMarkStroke = SerialUtilities.readStroke(stream); this.tickMarkPaint = SerialUtilities.readPaint(stream); this.listenerList = new EventListenerList();
stream.defaultReadObject(); this.shape = SerialUtilities.readShape(stream); this.fillPaint = SerialUtilities.readPaint(stream); this.outlinePaint = SerialUtilities.readPaint(stream); this.outlineStroke = SerialUtilities.readStroke(stream); this.line = SerialUtilities.readShape(stream); this.linePaint = SerialUtilities.readPaint(stream); this.lineStroke = SerialUtilities.readStroke(stream);
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/src/org/jfree/chart/axis/Axis.java File path: /jfreechart-1.0.10/src/org/jfree/chart/title/LegendGraphic.java
Method name: void readObject(ObjectInputStream) Method name: void readObject(ObjectInputStream)
Number of AST nodes: 8 Number of AST nodes: 8
1
stream.defaultReadObject();
1
stream.defaultReadObject();
2
        this.labelPaint = SerialUtilities.readPaint(stream);
2
        this.shape = SerialUtilities.readShape(stream);
3
        this.tickLabelPaint = SerialUtilities.readPaint(stream);
3
        this.fillPaint = SerialUtilities.readPaint(stream);
4
        this.axisLineStroke = SerialUtilities.readStroke(stream);
4
        this.outlinePaint = SerialUtilities.readPaint(stream);
5
        this.axisLinePaint = SerialUtilities.readPaint(stream);
5
        this.outlineStroke = SerialUtilities.readStroke(stream);
6
        this.tickMarkStroke = SerialUtilities.readStroke(stream);
6
        this.line = SerialUtilities.readShape(stream);
7
        this.tickMarkPaint = SerialUtilities.readPaint(stream);
7
        this.linePaint = SerialUtilities.readPaint(stream);
8
        this.listenerList = new EventListenerList();
8
        this.lineStroke = SerialUtilities.readStroke(stream);
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.0
Clones locationClones are in different classes
Number of node comparisons34
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements6
    Number of unmapped statements in the first code fragment2
    Number of unmapped statements in the second code fragment2
    Time elapsed for statement mapping (ms)0.0
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    stream.defaultReadObject();
    1
    stream.defaultReadObject();
                                                                                                    
    2
    this.shape = SerialUtilities.readShape(stream);
    Preondition Violations
    Unmatched statement this.shape=SerialUtilities.readShape(stream); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    2
    this.shape = SerialUtilities.readShape(stream);
    2
    this.labelPaint = SerialUtilities.readPaint(stream);
    2
    this.labelPaint = SerialUtilities.readPaint(stream);
    3
    this.fillPaint = SerialUtilities.readPaint(stream);
    Differences
    Expression1Expression2Difference
    labelPaintfillPaintVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression this.labelPaint is a field being modified, and thus it cannot be parameterized
    Expression this.fillPaint is a field being modified, and thus it cannot be parameterized
    3
    this.fillPaint = SerialUtilities.readPaint(stream);
    3
    this.tickLabelPaint = SerialUtilities.readPaint(stream);
    3
    this.tickLabelPaint = SerialUtilities.readPaint(stream);
    4
    this.outlinePaint = SerialUtilities.readPaint(stream);
    Differences
    Expression1Expression2Difference
    tickLabelPaintoutlinePaintVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression this.tickLabelPaint is a field being modified, and thus it cannot be parameterized
    Expression this.outlinePaint is a field being modified, and thus it cannot be parameterized
    4
    this.outlinePaint = SerialUtilities.readPaint(stream);
    4
    this.axisLineStroke = SerialUtilities.readStroke(stream);
    4
    this.axisLineStroke = SerialUtilities.readStroke(stream);
    5
    this.outlineStroke = SerialUtilities.readStroke(stream);
    Differences
    Expression1Expression2Difference
    axisLineStrokeoutlineStrokeVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression this.axisLineStroke is a field being modified, and thus it cannot be parameterized
    Expression this.outlineStroke is a field being modified, and thus it cannot be parameterized
    5
    this.outlineStroke = SerialUtilities.readStroke(stream);
                                                                                                  
    6
    this.line = SerialUtilities.readShape(stream);
    Preondition Violations
    Unmatched statement this.line=SerialUtilities.readShape(stream); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    6
    this.line = SerialUtilities.readShape(stream);
    5
    this.axisLinePaint = SerialUtilities.readPaint(stream);
    5
    this.axisLinePaint = SerialUtilities.readPaint(stream);
    7
    this.linePaint = SerialUtilities.readPaint(stream);
    Differences
    Expression1Expression2Difference
    axisLinePaintlinePaintVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression this.axisLinePaint is a field being modified, and thus it cannot be parameterized
    Expression this.linePaint is a field being modified, and thus it cannot be parameterized
    7
    this.linePaint = SerialUtilities.readPaint(stream);
    6
    this.tickMarkStroke = SerialUtilities.readStroke(stream);
    6
    this.tickMarkStroke = SerialUtilities.readStroke(stream);
    8
    this.lineStroke = SerialUtilities.readStroke(stream);
    Differences
    Expression1Expression2Difference
    tickMarkStrokelineStrokeVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression this.tickMarkStroke is a field being modified, and thus it cannot be parameterized
    Expression this.lineStroke is a field being modified, and thus it cannot be parameterized
    8
    this.lineStroke = SerialUtilities.readStroke(stream);
    7
    this.tickMarkPaint = SerialUtilities.readPaint(stream);
    7
    this.tickMarkPaint = SerialUtilities.readPaint(stream);
    Preondition Violations
    Unmatched statement this.tickMarkPaint=SerialUtilities.readPaint(stream); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                                    
    8
    this.listenerList = new EventListenerList();
    8
    this.listenerList = new EventListenerList();
    Preondition Violations
    Unmatched statement this.listenerList=new EventListenerList(); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                                                                              
    Precondition Violations (14)
    Row Violation
    1Unmatched statement this.shape=SerialUtilities.readShape(stream); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    2Expression this.labelPaint is a field being modified, and thus it cannot be parameterized
    3Expression this.fillPaint is a field being modified, and thus it cannot be parameterized
    4Expression this.tickLabelPaint is a field being modified, and thus it cannot be parameterized
    5Expression this.outlinePaint is a field being modified, and thus it cannot be parameterized
    6Expression this.axisLineStroke is a field being modified, and thus it cannot be parameterized
    7Expression this.outlineStroke is a field being modified, and thus it cannot be parameterized
    8Unmatched statement this.line=SerialUtilities.readShape(stream); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    9Expression this.axisLinePaint is a field being modified, and thus it cannot be parameterized
    10Expression this.linePaint is a field being modified, and thus it cannot be parameterized
    11Expression this.tickMarkStroke is a field being modified, and thus it cannot be parameterized
    12Expression this.lineStroke is a field being modified, and thus it cannot be parameterized
    13Unmatched statement this.tickMarkPaint=SerialUtilities.readPaint(stream); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    14Unmatched statement this.listenerList=new EventListenerList(); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted