PropertyIterator i = headers.iterator(); while (i.hasNext()) { Header header = (Header) i.next().getObjectValue(); String n = header.getName(); String v = header.getValue(); conn.addRequestProperty(n, v); }
PropertyIterator iter = getArguments().iterator(); Map argMap = new HashMap(); while (iter.hasNext()) { LDAPArgument arg = (LDAPArgument) iter.next().getObjectValue(); argMap.put(arg.getName(), arg.getValue()); } return argMap;
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/protocol/ldap/config/gui/LDAPArguments.java
Method name: void setConnectionHeaders(HttpURLConnection, URL, HeaderManager, CacheManager) Method name: Map getArgumentsAsMap()
Number of AST nodes: 6 Number of AST nodes: 6
1
PropertyIterator i = headers.iterator();
1
PropertyIterator i
2
		
2
ter = getArguments().iterator();
3
		Map argMap = new HashMap();
3
		while (i.hasNext()) {
4
		while (iter.hasNext()) {
4
					Header header = (Header) i.next().getObjectValue();
5
			
5
					String n = header.getName();
6
					String v = header
6
LDAPArgument arg = (LDAPArgument) iter.next().getObjectValue();
7
.getValue();
7
			argMap.put(arg.getName(), arg.getValue());
8
					conn.addRequestProperty(n, v);
8
		
9
				}
9
}
10
		return argMap;
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 having the same super class
Number of node comparisons18
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements3
    Number of unmapped statements in the first code fragment3
    Number of unmapped statements in the second code fragment3
    Time elapsed for statement mapping (ms)8.9
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    4
    PropertyIterator i = headers.iterator();
    4
    PropertyIterator i = headers.iterator();
    1
    PropertyIterator iter = getArguments().iterator();
    Differences
    Expression1Expression2Difference
    iiterVARIABLE_NAME_MISMATCH
    headersgetArguments()TYPE_COMPATIBLE_REPLACEMENT
    1
    PropertyIterator iter = getArguments().iterator();
                                                            
    2
    Map argMap = new HashMap();
    5
    while (i.hasNext())
    5
    while (i.hasNext())
    3
    while (iter.hasNext())
    Differences
    Expression1Expression2Difference
    iiterVARIABLE_NAME_MISMATCH
    3
    while (iter.hasNext())
    6
    Header header = (Header)i.next().getObjectValue();
    6
    Header header = (Header)i.next().getObjectValue();
    4
    LDAPArgument arg = (LDAPArgument)iter.next().getObjectValue();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.protocol.http.control.Headerorg.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentSUBCLASS_TYPE_MISMATCH
    headerargVARIABLE_NAME_MISMATCH
    org.apache.jmeter.protocol.http.control.Headerorg.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentSUBCLASS_TYPE_MISMATCH
    org.apache.jmeter.protocol.http.control.Headerorg.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentSUBCLASS_TYPE_MISMATCH
    iiterVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression (Header)i.next().getObjectValue() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (LDAPArgument)iter.next().getObjectValue() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4
    LDAPArgument arg = (LDAPArgument)iter.next().getObjectValue();
                                                                                            
    5
    argMap.put(arg.getName(), arg.getValue());
    Preondition Violations
    Unmatched statement argMap.put(arg.getName(),arg.getValue()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    5
    argMap.put(arg.getName(), arg.getValue());
    7
    String n = header.getName();
    7
    String n = header.getName();
    Preondition Violations
    Unmatched statement String n=header.getName(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                              
    8
    String v = header.getValue();
    8
    String v = header.getValue();
    Preondition Violations
    Unmatched statement String v=header.getValue(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                
    9
    conn.addRequestProperty(n, v);
    9
    conn.addRequestProperty(n, v);
    Preondition Violations
    Unmatched statement conn.addRequestProperty(n,v); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                    
                                      
    6
    return argMap;
    Preondition Violations
    Unmatched return argMap;
    6
    return argMap;
    Precondition Violations (8)
    Row Violation
    1Expression (Header)i.next().getObjectValue() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression (LDAPArgument)iter.next().getObjectValue() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Unmatched statement argMap.put(arg.getName(),arg.getValue()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    4Unmatched statement String n=header.getName(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    5Unmatched statement String v=header.getValue(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    6Unmatched statement conn.addRequestProperty(n,v); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    7Unmatched return argMap;
    8Clone fragment #1 returns variable header with type org.apache.jmeter.protocol.http.control.Header , while Clone fragment #2 returns variable arg with type org.apache.jmeter.protocol.ldap.config.gui.LDAPArgument