JFrame f = new JFrame(); // TODO move to new standard location and rewrite test to be less static f.getContentPane().setLayout(new BorderLayout()); ApplicationArguments.initialize(new String[0]); final PluginQueryTokenizerPreferencesManager prefsManager = new PluginQueryTokenizerPreferencesManager(); prefsManager.initialize(new DummyPlugin(), new OraclePreferenceBean()); final PluginQueryTokenizerPreferencesPanel p = new OraclePluginPreferencesPanel(prefsManager); JScrollPane sp = new JScrollPane(p); f.getContentPane().add(sp, BorderLayout.CENTER); JButton button = new JButton("Save"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { p.applyChanges(); prefsManager.unload(); } }); JButton exitButton = new JButton("Exit"); exitButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); JPanel buttonPanel = new JPanel(); buttonPanel.add(button); buttonPanel.add(exitButton); f.getContentPane().add(buttonPanel, BorderLayout.SOUTH); f.setBounds(200, 50,700, 700); f.setVisible(true);
JFrame f = new JFrame(); f.getContentPane().setLayout(new BorderLayout()); ApplicationArguments.initialize(new String[0]); SQLScriptPreferencesManager.initialize(new DummyPlugin()); SQLScriptPreferenceBean bean = SQLScriptPreferencesManager.getPreferences(); final SQLScriptPreferencesPanel p = new SQLScriptPreferencesPanel(bean); JScrollPane sp = new JScrollPane(p); f.getContentPane().add(sp, BorderLayout.CENTER); JButton button = new JButton("Save"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { p.applyChanges(); SQLScriptPreferencesManager.unload(); } }); JButton exitButton = new JButton("Exit"); exitButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); JPanel buttonPanel = new JPanel(); buttonPanel.add(button); buttonPanel.add(exitButton); f.getContentPane().add(buttonPanel, BorderLayout.SOUTH); f.setBounds(200, 50,700, 700); f.setVisible(true);
Clone fragments detected by clone detection tool
File path: /sql12/test/jfctests/net/sourceforge/squirrel_sql/plugins/oracle/gui/TestOraclePluginPreferencesPanel.java File path: /sql12/test/jfctests/net/sourceforge/squirrel_sql/plugins/sqlscript/prefs/TestSQLScriptPreferencesPanel.java
Method name: void main(String[]) Method name: void main(String[])
Number of AST nodes: 18 Number of AST nodes: 18
1
JFrame f = new JFrame();
1
JFrame f = new JFrame();
2
        // TODO move to new standard location and rewrite test to be less static
3
        f.getContentPane().setLayout(new BorderLayout());
2
        f.getContentPane().setLayout(new BorderLayout());
4
        ApplicationArguments.initialize(new String[0]);
3
        ApplicationArguments.initialize(new String[0]);
5
        final PluginQueryTokenizerPreferencesManager prefsManager = 
4
        
6
            new PluginQueryTokenizerPreferencesManager();
7
        prefsManager.initialize(new DummyPlugin(), new Oracle
5
SQLScriptPreferencesManager.initialize(new DummyPlugin());
8
PreferenceBean());
6
        SQLScriptPreferenceBean bean = SQLScriptPreferencesManager.getPreferences();
9
        final PluginQueryTokenizerPreferencesPanel p = 
7
        final SQLScriptPreferencesPanel p = 
10
            new OraclePluginPreferencesPanel(prefsManager);
8
new SQLScriptPreferencesPanel(bean);
11
        JScrollPane sp = new JScrollPane(p);
9
        JScrollPane sp = new JScrollPane(p);
12
        f.getContentPane().add(sp, BorderLayout.CENTER);
10
        f.getContentPane().add(sp, BorderLayout.CENTER);
13
        JButton button = new JButton("Save");
11
        JButton button = new JButton("Save");
14
        button.addActionListener(new ActionListener() {
12
        button.addActionListener(new ActionListener() {
15
            public void actionPerformed(ActionEvent e) {
13
            public void actionPerformed(ActionEvent e) {
16
                p.applyChanges();
14
                p.applyChanges();
17
                prefsManager.unload();
15
                SQLScriptPreferencesManager.unload();
18
            }
16
            }
19
        });
17
        });
20
        JButton exitButton = new JButton("Exit");
18
        JButton exitButton = new JButton("Exit");
21
        exitButton.addActionListener(new ActionListener() {
19
        exitButton.addActionListener(new ActionListener() {
22
            public void actionPerformed(ActionEvent e) {
20
            public void actionPerformed(ActionEvent e) {
23
                System.exit(0);
21
                System.exit(0);
24
            }
22
            }
25
        });
23
        });
26
        JPanel buttonPanel = new JPanel();
24
        JPanel buttonPanel = new JPanel();
27
        buttonPanel.add(button);
25
        buttonPanel.add(button);
28
        buttonPanel.add(exitButton);
26
        buttonPanel.add(exitButton);
29
        f.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
27
        f.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
30
        f.setBounds(200, 50,700, 700);
28
        f.setBounds(200, 50,700, 700);
31
        f.setVisible(true);
29
        f.setVisible(true);
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.0
Clones locationClones are in different classes
Number of node comparisons176
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements16
    Number of unmapped statements in the first code fragment2
    Number of unmapped statements in the second code fragment2
    Time elapsed for statement mapping (ms)0.0
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    JFrame f = new JFrame();
    1
    JFrame f = new JFrame();
    2
    f.getContentPane().setLayout(new BorderLayout());
    2
    f.getContentPane().setLayout(new BorderLayout());
    3
    ApplicationArguments.initialize(new String[0]);
    3
    ApplicationArguments.initialize(new String[0]);
                                                                                                                              
    4
    SQLScriptPreferencesManager.initialize(new DummyPlugin());
    Preondition Violations
    Unmatched statement SQLScriptPreferencesManager.initialize(new DummyPlugin()); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    4
    SQLScriptPreferencesManager.initialize(new DummyPlugin());
    4
    final PluginQueryTokenizerPreferencesManager prefsManager = new PluginQueryTokenizerPreferencesManager();
                                                                                                                                                                                                                        
                                                                                                                                                              
    5
    SQLScriptPreferenceBean bean = SQLScriptPreferencesManager.getPreferences();
    5
    prefsManager.initialize(new DummyPlugin(), new OraclePreferenceBean());
    5
    prefsManager.initialize(new DummyPlugin(), new OraclePreferenceBean());
    Preondition Violations
    Unmatched statement prefsManager.initialize(new DummyPlugin(),new OraclePreferenceBean()); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
                                                                                                                                                      
    6
    final PluginQueryTokenizerPreferencesPanel p = new OraclePluginPreferencesPanel(prefsManager);
    6
    final PluginQueryTokenizerPreferencesPanel p = new OraclePluginPreferencesPanel(prefsManager);
    6
    final SQLScriptPreferencesPanel p = new SQLScriptPreferencesPanel(bean);
    Differences
    Expression1Expression2Difference
    net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanelnet.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesPanelSUBCLASS_TYPE_MISMATCH
    net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanelnet.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesPanelSUBCLASS_TYPE_MISMATCH
    net.sourceforge.squirrel_sql.plugins.oracle.prefs.OraclePluginPreferencesPanelnet.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesPanelSUBCLASS_TYPE_MISMATCH
    prefsManagerbeanVARIABLE_NAME_MISMATCH
    net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManagernet.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferenceBeanVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Expression new OraclePluginPreferencesPanel(prefsManager) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression new SQLScriptPreferencesPanel(bean) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager of variable prefsManager does not match with type net.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferenceBean of variable bean
    • Make classes net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager and net.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferenceBean extend a common superclass
    6
    final SQLScriptPreferencesPanel p = new SQLScriptPreferencesPanel(bean);
    7
    JScrollPane sp = new JScrollPane(p);
    7
    JScrollPane sp = new JScrollPane(p);
    7
    JScrollPane sp = new JScrollPane(p);
    Differences
    Expression1Expression2Difference
    net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanelnet.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesPanelSUBCLASS_TYPE_MISMATCH
    7
    JScrollPane sp = new JScrollPane(p);
    8
    f.getContentPane().add(sp, BorderLayout.CENTER);
    8
    f.getContentPane().add(sp, BorderLayout.CENTER);
    9
    JButton button = new JButton("Save");
    9
    JButton button = new JButton("Save");
    10
    button.addActionListener(new ActionListener() {...});
    10
    button.addActionListener(new ActionListener() {...});
    10
    button.addActionListener(new ActionListener() {...});
    Differences
    Expression1Expression2Difference
    net.sourceforge.squirrel_sql.client.plugin.gui.PluginQueryTokenizerPreferencesPanelnet.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesPanelSUBCLASS_TYPE_MISMATCH
    net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManagernet.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesManagerVARIABLE_TYPE_MISMATCH
    prefsManager.unload()SQLScriptPreferencesManager.unload()TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression p cannot be unified with expression p , because common superclass javax.swing.JPanel does not declare member(s) public void applyChanges()
    Type net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager of variable prefsManager does not match with type net.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesManager of variable SQLScriptPreferencesManager
    • Make classes net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager and net.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesManager extend a common superclass
    Expression prefsManager.unload() is a void method call, and thus it cannot be parameterized
    Expression SQLScriptPreferencesManager.unload() is a void method call, and thus it cannot be parameterized
    10
    button.addActionListener(new ActionListener() {...});
    11
    JButton exitButton = new JButton("Exit");
    11
    JButton exitButton = new JButton("Exit");
    12
    exitButton.addActionListener(new ActionListener() {...});
    12
    exitButton.addActionListener(new ActionListener() {...});
    13
    JPanel buttonPanel = new JPanel();
    13
    JPanel buttonPanel = new JPanel();
    14
    buttonPanel.add(button);
    14
    buttonPanel.add(button);
    15
    buttonPanel.add(exitButton);
    15
    buttonPanel.add(exitButton);
    16
    f.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    16
    f.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    17
    f.setBounds(200, 50, 700, 700);
    17
    f.setBounds(200, 50, 700, 700);
    18
    f.setVisible(true);
    18
    f.setVisible(true);
    Precondition Violations (9)
    Row Violation
    1Unmatched statement SQLScriptPreferencesManager.initialize(new DummyPlugin()); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    2Unmatched statement prefsManager.initialize(new DummyPlugin(),new OraclePreferenceBean()); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    3Expression new OraclePluginPreferencesPanel(prefsManager) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression new SQLScriptPreferencesPanel(bean) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Type net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager of variable prefsManager does not match with type net.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferenceBean of variable bean
    6Expression p cannot be unified with expression p , because common superclass javax.swing.JPanel does not declare member(s) public void applyChanges()
    7Type net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager of variable prefsManager does not match with type net.sourceforge.squirrel_sql.plugins.sqlscript.prefs.SQLScriptPreferencesManager of variable SQLScriptPreferencesManager
    8Expression prefsManager.unload() is a void method call, and thus it cannot be parameterized
    9Expression SQLScriptPreferencesManager.unload() is a void method call, and thus it cannot be parameterized