String name = (String) iter.next(); /* * JMeterTreeNode and TestBeanGUI are special GUI classes, and * aren't intended to be added to menus * * TODO: find a better way of checking this */ if (name.endsWith("JMeterTreeNode") // $NON-NLS-1$ || name.endsWith("TestBeanGUI")) {// $NON-NLS-1$ continue;// Don't try to instantiate these } JMeterGUIComponent item; try { Class c = Class.forName(name); if (TestBean.class.isAssignableFrom(c)) { item = new TestBeanGUI(c); } else { item = (JMeterGUIComponent) c.newInstance(); } } catch (NoClassDefFoundError e) { log.warn("Missing jar? Could not create " + name + ". " + e); continue; } catch (Throwable e) { log.warn("Could not instantiate " + name, e); continue; } if (elementsToSkip.contains(name) || elementsToSkip.contains(item.getStaticLabel())) { log.info("Skipping " + name); continue; } else { elementsToSkip.add(name); } Collection categories = item.getMenuCategories(); if (categories == null) { log.debug(name + " participates in no menus."); continue; } if (categories.contains(TIMERS)) { timers.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(POST_PROCESSORS)) { postProcessors.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(PRE_PROCESSORS)) { preProcessors.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(CONTROLLERS)) { controllers.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(SAMPLERS)) { samplers.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(NON_TEST_ELEMENTS)) { nonTestElements.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(LISTENERS)) { listeners.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(CONFIG_ELEMENTS)) { configElements.add(new MenuInfo(item.getStaticLabel(), name)); }
String name = (String) iter.next(); /* * JMeterTreeNode and TestBeanGUI are special GUI classes, and * aren't intended to be added to menus * * TODO: find a better way of checking this */ if (name.endsWith("JMeterTreeNode") || name.endsWith("TestBeanGUI")) { continue;// Don't try to instantiate these } JMeterGUIComponent item; try { Class c = Class.forName(name); if (TestBean.class.isAssignableFrom(c)) { item = new TestBeanGUI(c); } else { item = (JMeterGUIComponent) c.newInstance(); } } catch (NoClassDefFoundError e) { log.warn("Missing jar? Could not create " + name + ". " + e); continue; } catch (Throwable e) { log.warn("Could not instantiate " + name, e); continue; } if (elementsToSkip.contains(name) || elementsToSkip.contains(item.getStaticLabel())) { log.info("Skipping " + name); continue; } else { elementsToSkip.add(name); } Collection categories = item.getMenuCategories(); if (categories == null) { log.debug(name + " participates in no menus."); continue; } if (categories.contains(POST_PROCESSORS)) { postProcessors.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(PRE_PROCESSORS)) { preProcessors.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(CONTROLLERS)) { controllers.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(NON_TEST_ELEMENTS)) { nonTestElements.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(LISTENERS)) { listeners.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(CONFIG_ELEMENTS)) { configElements.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(TABLES)) { tables.add(new MenuInfo(item.getStaticLabel(), name)); } if (categories.contains(REPORT_PAGE)) { reportPage.add(new MenuInfo(item.getStaticLabel(), name)); }
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/gui/util/MenuFactory.java File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/gui/util/ReportMenuFactory.java
Method name: void initializeMenus() Method name: void initializeMenus()
Number of AST nodes: 33 Number of AST nodes: 33
1
String name = (String) iter.next();
1
String name = (String) iter.next();
2
				/*
2
				/*
3
				 * JMeterTreeNode and TestBeanGUI are special GUI classes, and
3
				 * JMeterTreeNode and TestBeanGUI are special GUI classes, and
4
				 * aren't intended to be added to menus
4
				 * aren't intended to be added to menus
5
				 * 
5
				 * 
6
				 * TODO: find a better way of checking this
6
				 * TODO: find a better way of checking this
7
				 */
7
				 */
8
				if (name.endsWith("JMeterTreeNode") // $NON-NLS-1$
8
				if (name.endsWith("JMeterTreeNode")
9
                        || name.endsWith("TestBeanGUI")) {// $NON-NLS-1$
9
 || name.endsWith("TestBeanGUI")) {
10
					continue;// Don't try to instantiate these
10
					continue;// Don't try to instantiate these
11
				}
11
				}
12
				JMeterGUIComponent item;
12
				JMeterGUIComponent item;
13
				try {
13
				try {
14
					Class c = Class.forName(name);
14
					Class c = Class.forName(name);
15
					if (TestBean.class.isAssignableFrom(c)) {
15
					if (TestBean.class.isAssignableFrom(c)) {
16
						item = new TestBeanGUI(c);
16
						item = new TestBeanGUI(c);
17
					} else {
17
					} else {
18
						item = (JMeterGUIComponent) c.newInstance();
18
						item = (JMeterGUIComponent) c.newInstance();
19
					}
19
					}
20
				} catch (NoClassDefFoundError e) {
20
				} catch (NoClassDefFoundError e) {
21
					log.warn("Missing jar? Could not create " + name + ". " + e);
21
					log.warn("Missing jar? Could not create " + name + ". " + e);
22
					continue;
22
					continue;
23
				} catch (Throwable e) {
23
				} catch (Throwable e) {
24
					log.warn("Could not instantiate " + name, e);
24
					log.warn("Could not instantiate " + name, e);
25
					continue;
25
					continue;
26
				}
26
				}
27
				if (elementsToSkip.contains(name) || elementsToSkip.contains(item.getStaticLabel())) {
27
				if (elementsToSkip.contains(name) || elementsToSkip.contains(item.getStaticLabel())) {
28
					log.info("Skipping " + name);
28
					log.info("Skipping " + name);
29
					continue;
29
					continue;
30
				} else {
30
				} else {
31
					elementsToSkip.add(name);
31
					elementsToSkip.add(name);
32
				}
32
				}
33
				Collection categories = item.getMenuCategories();
33
				Collection categories = item.getMenuCategories();
34
				if (categories == null) {
34
				if (categories == null) {
35
					log.debug(name + " participates in no menus.");
35
					log.debug(name + " participates in no menus.");
36
					continue;
36
					continue;
37
				}
37
				}
38
				if (categories.contains(TIMERS)) {
39
					timers.add(new MenuInfo(item.getStaticLabel(), name));
40
				}
41
				if (categories.contains(POST_PROCESSORS)) {
38
				if (categories.contains(POST_PROCESSORS)) {
42
					postProcessors.add(new MenuInfo(item.getStaticLabel(), name));
39
					postProcessors.add(new MenuInfo(item.getStaticLabel(), name));
43
				}
40
				}
44
				if (categories.contains(PRE_PROCESSORS)) {
41
				if (categories.contains(PRE_PROCESSORS)) {
45
					preProcessors.add(new MenuInfo(item.getStaticLabel(), name));
42
					preProcessors.add(new MenuInfo(item.getStaticLabel(), name));
46
				}
43
				}
47
				if (categories.contains(CONTROLLERS)) {
44
				if (categories.contains(CONTROLLERS)) {
48
					controllers.add(new MenuInfo(item.getStaticLabel(), name));
45
					controllers.add(new MenuInfo(item.getStaticLabel(), name));
49
				}
46
				}
50
				if (categories.contains(SAMPLERS)) {
51
					samplers.add(new MenuInfo(item.getStaticLabel(), name));
52
				}
53
				if (categories.contains(NON_TEST_ELEMENTS)) {
47
				if (categories.contains(NON_TEST_ELEMENTS)) {
54
					nonTestElements.add(new MenuInfo(item.getStaticLabel(), name));
48
					nonTestElements.add(new MenuInfo(item.getStaticLabel(), name));
55
				}
49
				}
56
				if (categories.contains(LISTENERS)) {
50
				if (categories.contains(LISTENERS)) {
57
					listeners.add(new MenuInfo(item.getStaticLabel(), name));
51
					listeners.add(new MenuInfo(item.getStaticLabel(), name));
58
				}
52
				}
59
				if (categories.contains(CONFIG_ELEMENTS)) {
53
				if (categories.contains(CONFIG_ELEMENTS)) {
60
					configElements.add(new MenuInfo(item.getStaticLabel(), name));
54
					configElements.add(new MenuInfo(item.getStaticLabel(), name));
61
				}
55
				}
56
				if (categories.contains(TABLES)) {
57
					tables.add(new MenuInfo(item.getStaticLabel(), name));
58
				}
59
				if (categories.contains(REPORT_PAGE)) {
60
					reportPage.add(new MenuInfo(item.getStaticLabel(), name));
61
				}
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)5.8
Clones locationClones are in different classes
Number of node comparisons264
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements33
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)116.8
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    24
    String name = (String)iter.next();
    22
    String name = (String)iter.next();
    25
    if (name.endsWith("JMeterTreeNode") || name.endsWith("TestBeanGUI"))
    23
    if (name.endsWith("JMeterTreeNode") || name.endsWith("TestBeanGUI"))
    26
    continue;
    26
    continue;
    24
    continue;
    Preondition Violations
    Statement continue; without innermost loop
    Statement continue; without innermost loop
    24
    continue;
    27
    JMeterGUIComponent item;
    25
    JMeterGUIComponent item;
    28
    try
    26
    try
    29
    Class c = Class.forName(name);
    27
    Class c = Class.forName(name);
    30
    if (TestBean.class.isAssignableFrom(c))
    28
    if (TestBean.class.isAssignableFrom(c))
    31
    item = new TestBeanGUI(c);
    29
    item = new TestBeanGUI(c);
    else
    else
    32
    item = (JMeterGUIComponent)c.newInstance();
    30
    item = (JMeterGUIComponent)c.newInstance();
    33
    if (elementsToSkip.contains(name) || elementsToSkip.contains(item.getStaticLabel()))
    31
    if (elementsToSkip.contains(name) || elementsToSkip.contains(item.getStaticLabel()))
    34
    log.info("Skipping " + name);
    32
    log.info("Skipping " + name);
    35
    continue;
    35
    continue;
    33
    continue;
    Preondition Violations
    Statement continue; without innermost loop
    Statement continue; without innermost loop
    33
    continue;
    else
    else
    36
    elementsToSkip.add(name);
    34
    elementsToSkip.add(name);
    37
    Collection categories = item.getMenuCategories();
    35
    Collection categories = item.getMenuCategories();
    38
    if (categories == null)
    36
    if (categories == null)
    39
    log.debug(name + " participates in no menus.");
    37
    log.debug(name + " participates in no menus.");
    40
    continue;
    40
    continue;
    38
    continue;
    Preondition Violations
    Statement continue; without innermost loop
    Statement continue; without innermost loop
    38
    continue;
    41
    if (categories.contains(TIMERS))
    41
    if (categories.contains(TIMERS))
    39
    if (categories.contains(POST_PROCESSORS))
    Differences
    Expression1Expression2Difference
    TIMERSPOST_PROCESSORSVARIABLE_NAME_MISMATCH
    39
    if (categories.contains(POST_PROCESSORS))
    42
    timers.add(new MenuInfo(item.getStaticLabel(), name));
    42
    timers.add(new MenuInfo(item.getStaticLabel(), name));
    40
    postProcessors.add(new MenuInfo(item.getStaticLabel(), name));
    Differences
    Expression1Expression2Difference
    timerspostProcessorsVARIABLE_NAME_MISMATCH
    40
    postProcessors.add(new MenuInfo(item.getStaticLabel(), name));
    43
    if (categories.contains(POST_PROCESSORS))
    43
    if (categories.contains(POST_PROCESSORS))
    41
    if (categories.contains(PRE_PROCESSORS))
    Differences
    Expression1Expression2Difference
    POST_PROCESSORSPRE_PROCESSORSVARIABLE_NAME_MISMATCH
    41
    if (categories.contains(PRE_PROCESSORS))
    44
    postProcessors.add(new MenuInfo(item.getStaticLabel(), name));
    44
    postProcessors.add(new MenuInfo(item.getStaticLabel(), name));
    42
    preProcessors.add(new MenuInfo(item.getStaticLabel(), name));
    Differences
    Expression1Expression2Difference
    postProcessorspreProcessorsVARIABLE_NAME_MISMATCH
    42
    preProcessors.add(new MenuInfo(item.getStaticLabel(), name));
    45
    if (categories.contains(PRE_PROCESSORS))
    45
    if (categories.contains(PRE_PROCESSORS))
    43
    if (categories.contains(CONTROLLERS))
    Differences
    Expression1Expression2Difference
    PRE_PROCESSORSCONTROLLERSVARIABLE_NAME_MISMATCH
    43
    if (categories.contains(CONTROLLERS))
    46
    preProcessors.add(new MenuInfo(item.getStaticLabel(), name));
    46
    preProcessors.add(new MenuInfo(item.getStaticLabel(), name));
    44
    controllers.add(new MenuInfo(item.getStaticLabel(), name));
    Differences
    Expression1Expression2Difference
    preProcessorscontrollersVARIABLE_NAME_MISMATCH
    44
    controllers.add(new MenuInfo(item.getStaticLabel(), name));
    47
    if (categories.contains(CONTROLLERS))
    47
    if (categories.contains(CONTROLLERS))
    45
    if (categories.contains(NON_TEST_ELEMENTS))
    Differences
    Expression1Expression2Difference
    CONTROLLERSNON_TEST_ELEMENTSVARIABLE_NAME_MISMATCH
    45
    if (categories.contains(NON_TEST_ELEMENTS))
    48
    controllers.add(new MenuInfo(item.getStaticLabel(), name));
    48
    controllers.add(new MenuInfo(item.getStaticLabel(), name));
    46
    nonTestElements.add(new MenuInfo(item.getStaticLabel(), name));
    Differences
    Expression1Expression2Difference
    controllersnonTestElementsVARIABLE_NAME_MISMATCH
    46
    nonTestElements.add(new MenuInfo(item.getStaticLabel(), name));
    49
    if (categories.contains(SAMPLERS))
    49
    if (categories.contains(SAMPLERS))
    47
    if (categories.contains(LISTENERS))
    Differences
    Expression1Expression2Difference
    SAMPLERSLISTENERSVARIABLE_NAME_MISMATCH
    47
    if (categories.contains(LISTENERS))
    50
    samplers.add(new MenuInfo(item.getStaticLabel(), name));
    50
    samplers.add(new MenuInfo(item.getStaticLabel(), name));
    48
    listeners.add(new MenuInfo(item.getStaticLabel(), name));
    Differences
    Expression1Expression2Difference
    samplerslistenersVARIABLE_NAME_MISMATCH
    48
    listeners.add(new MenuInfo(item.getStaticLabel(), name));
    51
    if (categories.contains(NON_TEST_ELEMENTS))
    51
    if (categories.contains(NON_TEST_ELEMENTS))
    49
    if (categories.contains(CONFIG_ELEMENTS))
    Differences
    Expression1Expression2Difference
    NON_TEST_ELEMENTSCONFIG_ELEMENTSVARIABLE_NAME_MISMATCH
    49
    if (categories.contains(CONFIG_ELEMENTS))
    52
    nonTestElements.add(new MenuInfo(item.getStaticLabel(), name));
    52
    nonTestElements.add(new MenuInfo(item.getStaticLabel(), name));
    50
    configElements.add(new MenuInfo(item.getStaticLabel(), name));
    Differences
    Expression1Expression2Difference
    nonTestElementsconfigElementsVARIABLE_NAME_MISMATCH
    50
    configElements.add(new MenuInfo(item.getStaticLabel(), name));
    53
    if (categories.contains(LISTENERS))
    53
    if (categories.contains(LISTENERS))
    51
    if (categories.contains(TABLES))
    Differences
    Expression1Expression2Difference
    LISTENERSTABLESVARIABLE_NAME_MISMATCH
    51
    if (categories.contains(TABLES))
    54
    listeners.add(new MenuInfo(item.getStaticLabel(), name));
    54
    listeners.add(new MenuInfo(item.getStaticLabel(), name));
    52
    tables.add(new MenuInfo(item.getStaticLabel(), name));
    Differences
    Expression1Expression2Difference
    listenerstablesVARIABLE_NAME_MISMATCH
    52
    tables.add(new MenuInfo(item.getStaticLabel(), name));
    55
    if (categories.contains(CONFIG_ELEMENTS))
    55
    if (categories.contains(CONFIG_ELEMENTS))
    53
    if (categories.contains(REPORT_PAGE))
    Differences
    Expression1Expression2Difference
    CONFIG_ELEMENTSREPORT_PAGEVARIABLE_NAME_MISMATCH
    53
    if (categories.contains(REPORT_PAGE))
    56
    configElements.add(new MenuInfo(item.getStaticLabel(), name));
    56
    configElements.add(new MenuInfo(item.getStaticLabel(), name));
    54
    reportPage.add(new MenuInfo(item.getStaticLabel(), name));
    Differences
    Expression1Expression2Difference
    configElementsreportPageVARIABLE_NAME_MISMATCH
    54
    reportPage.add(new MenuInfo(item.getStaticLabel(), name));
    Precondition Violations (7)
    Row Violation
    1Statement continue; without innermost loop
    2Statement continue; without innermost loop
    3Statement continue; without innermost loop
    4Statement continue; without innermost loop
    5Statement continue; without innermost loop
    6Statement continue; without innermost loop
    7Clone fragment #1 returns variables categories, name, item , while Clone fragment #2 returns variables