PropertyHelper helper = (PropertyHelper) project.getReference(MagicNames.REFID_PROPERTY_HELPER); if (helper != null) { return helper; } helper = new PropertyHelper(); helper.setProject(project); project.addReference(MagicNames.REFID_PROPERTY_HELPER, helper); return helper;
ComponentHelper ph = (ComponentHelper) project.getReference( COMPONENT_HELPER_REFERENCE); if (ph != null) { return ph; } ph = new ComponentHelper(); ph.setProject(project); project.addReference(COMPONENT_HELPER_REFERENCE, ph); return ph;
Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/org/apache/tools/ant/PropertyHelper.java File path: /apache-ant-1.7.0/src/org/apache/tools/ant/ComponentHelper.java
Method name: PropertyHelper getPropertyHelper(Project) Method name: ComponentHelper getComponentHelper(Project)
Number of AST nodes: 7 Number of AST nodes: 7
1
PropertyHelper helper
2
            = (PropertyHelper) project.getReference(MagicNames.REFID_PROPERTY_HELPER
1
ComponentHelper ph = (ComponentHelper) project.getReference(
3
);
2
                COMPONENT_HELPER_REFERENCE);
4
        if (helper != null) {
3
        if (ph != null) {
5
            return helper;
4
            return ph;
6
        }
5
        }
7
        helper = new PropertyHelper();
6
        ph = new ComponentHelper();
8
        helper.setProject(project);
7
        ph.setProject(project);
9
        project.addReference(MagicNames.REFID_PROPERTY_HELPER, helper);
8
        project.addReference(COMPONENT_HELPER_REFERENCE, ph);
10
        return helper;
9
        return ph;
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.1
Clones locationClones are in different classes
Number of node comparisons25
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements2
    Number of unmapped statements in the first code fragment5
    Number of unmapped statements in the second code fragment5
    Time elapsed for statement mapping (ms)1.2
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    PropertyHelper helper = (PropertyHelper)project.getReference(MagicNames.REFID_PROPERTY_HELPER);
                                                                                                                                                                                                    
                                                                                                                                                                                    
    3
    ComponentHelper ph = (ComponentHelper)project.getReference(COMPONENT_HELPER_REFERENCE);
    2
    if (helper != null)
    2
    if (helper != null)
    4
    if (ph != null)
    Differences
    Expression1Expression2Difference
    helperphVARIABLE_NAME_MISMATCH
    org.apache.tools.ant.PropertyHelperorg.apache.tools.ant.ComponentHelperVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.apache.tools.ant.PropertyHelper of variable helper does not match with type org.apache.tools.ant.ComponentHelper of variable ph
    • Make classes org.apache.tools.ant.PropertyHelper and org.apache.tools.ant.ComponentHelper extend a common superclass
    4
    if (ph != null)
    3
    return helper;
    3
    return helper;
    Preondition Violations
    Unmatched return helper;
                                      
                              
    5
    return ph;
    Preondition Violations
    Unmatched return ph;
    5
    return ph;
    4
    helper = new PropertyHelper();
    4
    helper = new PropertyHelper();
    Preondition Violations
    Unmatched statement helper=new PropertyHelper(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                  
                                                            
    6
    ph = new ComponentHelper();
    Preondition Violations
    Unmatched statement ph=new ComponentHelper(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    6
    ph = new ComponentHelper();
    5
    helper.setProject(project);
    5
    helper.setProject(project);
    7
    ph.setProject(project);
    Differences
    Expression1Expression2Difference
    helperphVARIABLE_NAME_MISMATCH
    org.apache.tools.ant.PropertyHelperorg.apache.tools.ant.ComponentHelperVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.apache.tools.ant.PropertyHelper of variable helper does not match with type org.apache.tools.ant.ComponentHelper of variable ph
    • Make classes org.apache.tools.ant.PropertyHelper and org.apache.tools.ant.ComponentHelper extend a common superclass
    7
    ph.setProject(project);
    6
    project.addReference(MagicNames.REFID_PROPERTY_HELPER, helper);
                                                                                                                                      
    7
    return helper;
    7
    return helper;
    Preondition Violations
    Unmatched return helper;
                                      
                                                                                                                  
    8
    project.addReference(COMPONENT_HELPER_REFERENCE, ph);
                              
    9
    return ph;
    Preondition Violations
    Unmatched return ph;
    9
    return ph;
    Precondition Violations (8)
    Row Violation
    1Type org.apache.tools.ant.PropertyHelper of variable helper does not match with type org.apache.tools.ant.ComponentHelper of variable ph
    2Unmatched return helper;
    3Unmatched return ph;
    4Unmatched statement helper=new PropertyHelper(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    5Unmatched statement ph=new ComponentHelper(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    6Type org.apache.tools.ant.PropertyHelper of variable helper does not match with type org.apache.tools.ant.ComponentHelper of variable ph
    7Unmatched return helper;
    8Unmatched return ph;