genericJar = new JarFile(genericJarFile); wlJar = new JarFile(weblogicJarFile); Hashtable genericEntries = new Hashtable(); Hashtable wlEntries = new Hashtable(); Hashtable replaceEntries = new Hashtable(); //get the list of generic jar entries for (Enumeration e = genericJar.entries(); e.hasMoreElements();) { JarEntry je = (JarEntry) e.nextElement(); genericEntries.put(je.getName().replace('\\', '/'), je); } //get the list of weblogic jar entries for (Enumeration e = wlJar.entries(); e.hasMoreElements();) { JarEntry je = (JarEntry) e.nextElement(); wlEntries.put(je.getName(), je); }
genericJar = new JarFile(genericJarFile); wasJar = new JarFile(websphereJarFile); Hashtable genericEntries = new Hashtable(); Hashtable wasEntries = new Hashtable(); Hashtable replaceEntries = new Hashtable(); //get the list of generic jar entries for (Enumeration e = genericJar.entries(); e.hasMoreElements();) { JarEntry je = (JarEntry) e.nextElement(); genericEntries.put(je.getName().replace('\\', '/'), je); } //get the list of websphere jar entries for (Enumeration e = wasJar.entries(); e.hasMoreElements();) { JarEntry je = (JarEntry) e.nextElement(); wasEntries.put(je.getName(), je); }
Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
Method name: boolean isRebuildRequired(File, File) Method name: boolean isRebuildRequired(File, File)
Number of AST nodes: 11 Number of AST nodes: 11
1
genericJar = new JarFile(genericJarFile);
1
genericJar = new JarFile(genericJarFile);
2
                wlJar = new JarFile(weblogicJarFile);
2
                wasJar = new JarFile(websphereJarFile);
3
                Hashtable genericEntries = new Hashtable();
3
                Hashtable genericEntries = new Hashtable();
4
                Hashtable wlEntries = new Hashtable();
4
                Hashtable wasEntries = new Hashtable();
5
                Hashtable replaceEntries = new Hashtable();
5
                Hashtable replaceEntries = new Hashtable();
6
                //get the list of generic jar entries
6
                //get the list of generic jar entries
7
                for (Enumeration e = genericJar.entries(); e.hasMoreElements();) {
7
                for (Enumeration e = genericJar.entries(); e.hasMoreElements();) {
8
                    JarEntry je = (JarEntry) e.nextElement();
8
                    JarEntry je = (JarEntry) e.nextElement();
9
                    genericEntries.put(je.getName().replace('\\', '/'), je);
9
                    genericEntries.put(je.getName().replace('\\', '/'), je);
10
                }
10
                }
11
                //get the list of weblogic jar entries
11
                //get the list of websphere jar entries
12
                for (Enumeration e = wlJar.entries(); e.hasMoreElements();) {
12
                for (Enumeration e = wasJar.entries(); e.hasMoreElements();) {
13
                    JarEntry je = (JarEntry) e.nextElement();
13
                    JarEntry je = (JarEntry) e.nextElement();
14
                    wlEntries.put(je.getName(), je);
14
                    wasEntries.put(je.getName(), je);
15
                }
15
                }
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.9
Clones locationClones are in different classes having the same super class
Number of node comparisons44
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements11
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)37.4
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    10
    genericJar = new JarFile(genericJarFile);
    9
    genericJar = new JarFile(genericJarFile);
    11
    wlJar = new JarFile(weblogicJarFile);
    11
    wlJar = new JarFile(weblogicJarFile);
    10
    wasJar = new JarFile(websphereJarFile);
    Differences
    Expression1Expression2Difference
    wlJarwasJarVARIABLE_NAME_MISMATCH
    weblogicJarFilewebsphereJarFileVARIABLE_NAME_MISMATCH
    10
    wasJar = new JarFile(websphereJarFile);
    12
    Hashtable genericEntries = new Hashtable();
    11
    Hashtable genericEntries = new Hashtable();
    13
    Hashtable wlEntries = new Hashtable();
    13
    Hashtable wlEntries = new Hashtable();
    12
    Hashtable wasEntries = new Hashtable();
    Differences
    Expression1Expression2Difference
    wlEntrieswasEntriesVARIABLE_NAME_MISMATCH
    12
    Hashtable wasEntries = new Hashtable();
    14
    Hashtable replaceEntries = new Hashtable();
    13
    Hashtable replaceEntries = new Hashtable();
    15
    for (Enumeration e = genericJar.entries(); e.hasMoreElements(); )
    14
    for (Enumeration e = genericJar.entries(); e.hasMoreElements(); )
    16
    JarEntry je = (JarEntry)e.nextElement();
    15
    JarEntry je = (JarEntry)e.nextElement();
    17
    genericEntries.put(je.getName().replace('\\', '/'), je);
    16
    genericEntries.put(je.getName().replace('\\', '/'), je);
    18
    for (Enumeration e = wlJar.entries(); e.hasMoreElements(); )
    18
    for (Enumeration e = wlJar.entries(); e.hasMoreElements(); )
    17
    for (Enumeration e = wasJar.entries(); e.hasMoreElements(); )
    Differences
    Expression1Expression2Difference
    wlJarwasJarVARIABLE_NAME_MISMATCH
    17
    for (Enumeration e = wasJar.entries(); e.hasMoreElements(); )
    19
    JarEntry je = (JarEntry)e.nextElement();
    18
    JarEntry je = (JarEntry)e.nextElement();
    20
    wlEntries.put(je.getName(), je);
    20
    wlEntries.put(je.getName(), je);
    19
    wasEntries.put(je.getName(), je);
    Differences
    Expression1Expression2Difference
    wlEntrieswasEntriesVARIABLE_NAME_MISMATCH
    19
    wasEntries.put(je.getName(), je);
    Precondition Violations (1)
    Row Violation
    1Clone fragment #1 returns variables genericJar, wlJar, genericEntries, wlEntries, replaceEntries , while Clone fragment #2 returns variables genericJar, wasJar, genericEntries, wasEntries, replaceEntries