List listClasses; Command command; Iterator iterClasses; Class commandClass; try { listClasses = ClassFinder.findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[] { Class .forName("org.apache.jmeter.gui.action.Command") }); commands = new HashMap(listClasses.size()); if (listClasses.size() == 0) { log.fatalError("!!!!!Uh-oh, didn't find any action handlers!!!!!"); throw new JMeterError("No action handlers found - check JMeterHome and libraries"); } iterClasses = listClasses.iterator(); while (iterClasses.hasNext()) { String strClassName = (String) iterClasses.next(); if (strClassName.startsWith("org.apache.jmeter.gui")) { commandClass = Class.forName(strClassName); if (!Modifier.isAbstract(commandClass.getModifiers())) { command = (Command) commandClass.newInstance(); Iterator iter = command.getActionNames().iterator(); while (iter.hasNext()) { String commandName = (String) iter.next(); Set commandObjects = (Set) commands.get(commandName); if (commandObjects == null) { commandObjects = new HashSet(); commands.put(commandName, commandObjects); } commandObjects.add(command); } } } } } catch (HeadlessException e){ log.warn(e.toString()); } catch (JMeterError e) { throw e; } catch (Exception e) { log.error("exception finding action handlers", e); }
log.info("populateCommandMap called"); List listClasses; Command command; Iterator iterClasses; Class commandClass; try { listClasses = ClassFinder.findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[] { Class .forName("org.apache.jmeter.gui.action.Command") }); commands = new HashMap(listClasses.size()); if (listClasses.size() == 0) { log.warn("!!!!!Uh-oh, didn't find any action handlers!!!!!"); } iterClasses = listClasses.iterator(); while (iterClasses.hasNext()) { String strClassName = (String) iterClasses.next(); if (strClassName.startsWith("org.apache.jmeter.report.gui.action")) { // log.info("classname:: " + strClassName); commandClass = Class.forName(strClassName); if (!Modifier.isAbstract(commandClass.getModifiers())) { command = (Command) commandClass.newInstance(); Iterator iter = command.getActionNames().iterator(); while (iter.hasNext()) { String commandName = (String) iter.next(); Set commandObjects = (Set) commands.get(commandName); if (commandObjects == null) { commandObjects = new HashSet(); commands.put(commandName, commandObjects); } commandObjects.add(command); } } } } } catch (Exception e) { if ("java.awt.HeadlessException".equals(e.getClass().getName())) // JDK1.4: { log.warn(e.toString()); } else { log.error("exception finding action handlers", e); } }
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/gui/action/ActionRouter.java File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/report/gui/action/ReportActionRouter.java
Method name: void populateCommandMap() Method name: void populateCommandMap()
Number of AST nodes: 25 Number of AST nodes: 25
1
log.info("populateCommandMap called");
1
List listClasses;
2
		List listClasses;
2
		Command command;
3
		Command command;
3
		Iterator iterClasses;
4
		Iterator iterClasses;
4
		Class commandClass;
5
		Class commandClass;
5
		try {
6
		try {
6
			listClasses = ClassFinder.findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[] { Class
7
			listClasses = ClassFinder.findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[] { Class
7
					.forName("org.apache.jmeter.gui.action.Command") });
8
					.forName("org.apache.jmeter.gui.action.Command") });
8
			commands = new HashMap(listClasses.size());
9
			commands = new HashMap(listClasses.size());
9
			if (listClasses.size() == 0) {
10
			if (listClasses.size() == 0) {
10
				log.fatalError("!!!!!Uh-oh, didn't find any action handlers!!!!!");
11
				log.warn("!!!!!Uh-oh, didn't find any action handlers!!!!!");
11
				throw new JMeterError("No action handlers found - check JMeterHome and libraries");
12
			
12
			}
13
}
13
			iterClasses = listClasses.iterator();
14
			iterClasses = listClasses.iterator();
14
			while (iterClasses.hasNext()) {
15
			while (iterClasses.hasNext()) {
15
				String strClassName = (String) iterClasses.next();
16
				String strClassName = (String) iterClasses.next();
16
                if (strClassName.startsWith("org.apache.jmeter.gui")) {
17
                if (strClassName.startsWith("org.apache.jmeter.report.gui.action")) {
18
                    // log.info("classname:: " + strClassName);
17
                    commandClass = Class.forName(strClassName);
19
                    commandClass = Class.forName(strClassName);
18
                    if (!Modifier.isAbstract(commandClass.getModifiers())) {
20
                    if (!Modifier.isAbstract(commandClass.getModifiers())) {
19
                        command = (Command) commandClass.newInstance();
21
                        command = (Command) commandClass.newInstance();
20
                        Iterator iter = command.getActionNames().iterator();
22
                        Iterator iter = command.getActionNames().iterator();
21
                        while (iter.hasNext()) {
23
                        while (iter.hasNext()) {
22
                            String commandName = (String) iter.next();
24
                            String commandName = (String) iter.next();
23
                            Set commandObjects = (Set) commands.get(commandName);
25
                            Set commandObjects = (Set) commands.get(commandName);
24
                            if (commandObjects == null) {
26
                            if (commandObjects == null) {
25
                                commandObjects = new HashSet();
27
                                commandObjects = new HashSet();
26
                                commands.put(commandName, commandObjects);
28
                                commands.put(commandName, commandObjects);
27
                            }
29
                            }
28
                            commandObjects.add(command);
30
                            commandObjects.add(command);
29
                        }
31
                        }
30
                    }
32
                    }
31
                }
33
                }
32
			}
34
			}
33
		} catch (HeadlessException e)
35
		} catch (Exception e) {
36
			if ("java.awt.HeadlessException".equals(e.getClass().getName())) // JDK1.4:
34
{
37
			{
35
			log.warn(e.toString());
38
				log.warn(e.toString());
36
		} catch (JMeterError e) {
39
		
37
			throw e;
38
		} catch (Exception e) {
40
	} else {
39
			log.error("exception finding action handlers", e);
41
				log.error("exception finding action handlers", e);
40
		
42
			}
41
}
43
		}
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.7
Clones locationClones are in different classes
Number of node comparisons56
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements19
    Number of unmapped statements in the first code fragment1
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)25.5
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    6
    listClasses = ClassFinder.findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[] {Class.forName("org.apache.jmeter.gui.action.Command")});
    7
    listClasses = ClassFinder.findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[] {Class.forName("org.apache.jmeter.gui.action.Command")});
    7
    commands = new HashMap(listClasses.size());
    8
    commands = new HashMap(listClasses.size());
    8
    if (listClasses.size() == 0)
    9
    if (listClasses.size() == 0)
    9
    log.fatalError("!!!!!Uh-oh, didn't find any action handlers!!!!!");
    9
    log.fatalError("!!!!!Uh-oh, didn't find any action handlers!!!!!");
    10
    log.warn("!!!!!Uh-oh, didn't find any action handlers!!!!!");
    Differences
    Expression1Expression2Difference
    fatalErrorwarnMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression log.fatalError("!!!!!Uh-oh, didn't find any action handlers!!!!!") is a void method call, and thus it cannot be parameterized
    Expression log.warn("!!!!!Uh-oh, didn't find any action handlers!!!!!") is a void method call, and thus it cannot be parameterized
    10
    log.warn("!!!!!Uh-oh, didn't find any action handlers!!!!!");
    10
    throw new JMeterError("No action handlers found - check JMeterHome and libraries");
    10
    throw new JMeterError("No action handlers found - check JMeterHome and libraries");
    Preondition Violations
    Unmatched throw new JMeterError("No action handlers found - check JMeterHome and libraries");
                                                                                                                                                                                  
    11
    iterClasses = listClasses.iterator();
    11
    iterClasses = listClasses.iterator();
    12
    while (iterClasses.hasNext())
    12
    while (iterClasses.hasNext())
    13
    String strClassName = (String)iterClasses.next();
    13
    String strClassName = (String)iterClasses.next();
    14
    if (strClassName.startsWith("org.apache.jmeter.gui"))
    14
    if (strClassName.startsWith("org.apache.jmeter.gui"))
    14
    if (strClassName.startsWith("org.apache.jmeter.report.gui.action"))
    Differences
    Expression1Expression2Difference
    "org.apache.jmeter.gui""org.apache.jmeter.report.gui.action"LITERAL_VALUE_MISMATCH
    14
    if (strClassName.startsWith("org.apache.jmeter.report.gui.action"))
    15
    commandClass = Class.forName(strClassName);
    15
    commandClass = Class.forName(strClassName);
    16
    if (!Modifier.isAbstract(commandClass.getModifiers()))
    16
    if (!Modifier.isAbstract(commandClass.getModifiers()))
    17
    command = (Command)commandClass.newInstance();
    17
    command = (Command)commandClass.newInstance();
    18
    Iterator iter = command.getActionNames().iterator();
    18
    Iterator iter = command.getActionNames().iterator();
    19
    while (iter.hasNext())
    19
    while (iter.hasNext())
    20
    String commandName = (String)iter.next();
    20
    String commandName = (String)iter.next();
    21
    Set commandObjects = (Set)commands.get(commandName);
    21
    Set commandObjects = (Set)commands.get(commandName);
    22
    if (commandObjects == null)
    22
    if (commandObjects == null)
    23
    commandObjects = new HashSet();
    23
    commandObjects = new HashSet();
    24
    commands.put(commandName, commandObjects);
    24
    commands.put(commandName, commandObjects);
    25
    commandObjects.add(command);
    25
    commandObjects.add(command);
    Precondition Violations (3)
    Row Violation
    1Expression log.fatalError("!!!!!Uh-oh, didn't find any action handlers!!!!!") is a void method call, and thus it cannot be parameterized
    2Expression log.warn("!!!!!Uh-oh, didn't find any action handlers!!!!!") is a void method call, and thus it cannot be parameterized
    3Unmatched throw new JMeterError("No action handlers found - check JMeterHome and libraries");