for (int i = 0; i < javaClasses.length; i++) { if (!(javaClasses[i] instanceof JavaClass) || !((JavaClass) javaClasses[i]).interface_p().isTrue()) { throw recv.getRuntime().newArgumentError("Java interface expected. got: " + javaClasses[i]); } interfaces[i] = ((JavaClass) javaClasses[i]).javaClass(); }
for (int i = 0; i < size; i++) { if (!(args[i] instanceof JavaClass) || !((JavaClass) args[i]).interface_p().isTrue()) { throw recv.getRuntime().newArgumentError("Java interface expected. got: " + args[i]); } interfaces[i] = ((JavaClass) args[i]).javaClass(); }
Clone fragments detected by clone detection tool
File path: /jruby-1.4.0/src/org/jruby/javasupport/Java.java File path: /jruby-1.4.0/src/org/jruby/javasupport/Java.java
Method name: IRubyObject new_proxy_instance2(IRubyObject, IRubyObject, IRubyObject, Block) Method name: IRubyObject new_proxy_instance(IRubyObject, IRubyObject[], Block)
Number of AST nodes: 4 Number of AST nodes: 4
1
for (int i = 0; i < javaClasses.length; i++) {
1
for (int i = 0; i < size; i++) {
2
            if (!(javaClasses[i] instanceof JavaClass) || !((JavaClass) javaClasses[i]).interface_p().isTrue()) {
2
            if (!(args[i] instanceof JavaClass) || !((JavaClass) args[i]).interface_p().isTrue()) {
3
                throw recv.getRuntime().newArgumentError("Java interface expected. got: " + javaClasses[i]);
3
                throw recv.getRuntime().newArgumentError("Java interface expected. got: " + args[i]);
4
            }
4
            }
5
            interfaces[i] = ((JavaClass) javaClasses[i]).javaClass();
5
            interfaces[i] = ((JavaClass) args[i]).javaClass();
6
        }
6
        }
Summary
Number of common nesting structure subtrees1
Number of refactorable cases1
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.5
Clones locationClones are declared in the same class
Number of node comparisons8
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements4
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)1.1
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    4
    for (int i = 0; i < javaClasses.length; i++)
    4
    for (int i = 0; i < javaClasses.length; i++)
    8
    for (int i = 0; i < size; i++)
    Differences
    Expression1Expression2Difference
    javaClasses.lengthsizeTYPE_COMPATIBLE_REPLACEMENT
    8
    for (int i = 0; i < size; i++)
    5
    if (!(javaClasses[i] instanceof JavaClass) || !((JavaClass)javaClasses[i]).interface_p().isTrue())
    5
    if (!(javaClasses[i] instanceof JavaClass) || !((JavaClass)javaClasses[i]).interface_p().isTrue())
    9
    if (!(args[i] instanceof JavaClass) || !((JavaClass)args[i]).interface_p().isTrue())
    Differences
    Expression1Expression2Difference
    javaClassesargsVARIABLE_NAME_MISMATCH
    javaClassesargsVARIABLE_NAME_MISMATCH
    9
    if (!(args[i] instanceof JavaClass) || !((JavaClass)args[i]).interface_p().isTrue())
    6
    throw recv.getRuntime().newArgumentError("Java interface expected. got: " + javaClasses[i]);
    6
    throw recv.getRuntime().newArgumentError("Java interface expected. got: " + javaClasses[i]);
    10
    throw recv.getRuntime().newArgumentError("Java interface expected. got: " + args[i]);
    Differences
    Expression1Expression2Difference
    javaClassesargsVARIABLE_NAME_MISMATCH
    10
    throw recv.getRuntime().newArgumentError("Java interface expected. got: " + args[i]);
    7
    interfaces[i] = ((JavaClass)javaClasses[i]).javaClass();
    7
    interfaces[i] = ((JavaClass)javaClasses[i]).javaClass();
    11
    interfaces[i] = ((JavaClass)args[i]).javaClass();
    Differences
    Expression1Expression2Difference
    javaClassesargsVARIABLE_NAME_MISMATCH
    11
    interfaces[i] = ((JavaClass)args[i]).javaClass();
    Precondition Violations (0)
    Row Violation