173-193-210

if (buffer == null) { buffer = new StringBuffer(value); } buffer.setCharAt(i - offset, ' ');
if (diagnosticHandler == null) { diagnosticHandler = new ConverterUIUtil.DiagnosticHandler(); } diagnosticHandler.handleDiagnostic(diagnostic);

Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/xml/type/util/XMLTypeUtil.java |  | File path: /emf-2.4.1/src/org/eclipse/emf/converter/ui/contribution/base/ModelConverterWizard.java
Method name: `String normalize(String, boolean)` |  | Method name: `void handleConvertDiagnostic(Diagnostic)`
Number of AST nodes: 3 |  | Number of AST nodes: 3

1

    if (buffer == null)↵

1

    if (diagnosticHandler == null)↵

2

                {↵

2

          {↵

3

                  buffer = new StringBuffer(value);↵

3

            diagnosticHandler = new ConverterUIUtil.DiagnosticHandler();↵

4

                }↵

4

          }↵

5

                buffer.setCharAt(i - offset, ' ');

5

          diagnosticHandler.handleDiagnostic(diagnostic);

See real code fragment |  | See real code fragment

Summary
Number of common nesting structure subtrees | 1
Number of refactorable cases | 0
Number of non-refactorable cases | 1
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.2
Clones location | Clones are in different classes
Number of node comparisons | 6

1. {Non-refactorable}

   Mapping Summary
   Number of mapped statements | 1
   Number of unmapped statements in the first code fragment | 2
   Number of unmapped statements in the second code fragment | 2
   Time elapsed for statement mapping (ms) | 0.4
   Clone type | Type 2

   Mapped Statements
   ID | Statement |  | ID | Statement
   --- | --- | --- | --- | ---

   19

       if (buffer == null)

   19 | if (buffer == null)
   2 | if (diagnosticHandler == null)

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   buffer | diagnosticHandler | VARIABLE_NAME_MISMATCH
   java.lang.StringBuffer | org.eclipse.emf.converter.util.ConverterUIUtil.DiagnosticHandler | VARIABLE_TYPE_MISMATCH

   Preondition Violations

   Type java.lang.StringBuffer of variable buffer does not match with type org.eclipse.emf.converter.util.ConverterUIUtil.DiagnosticHandler of variable diagnosticHandler
   - Make classes java.lang.StringBuffer and org.eclipse.emf.converter.util.ConverterUIUtil.DiagnosticHandler extend a common superclass

   2

       if (diagnosticHandler == null)

   3

       diagnosticHandler = new ConverterUIUtil.DiagnosticHandler();

   20

       buffer = new StringBuffer(value);

   20 | buffer = new StringBuffer(value);

   Preondition Violations
   Unmatched statement buffer=new StringBuffer(value); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted

   4

       diagnosticHandler.handleDiagnostic(diagnostic);

   21

       buffer.setCharAt(i - offset, ' ');

   Precondition Violations (2)
   Row | Violation
   --- | ---
   1 | Type java.lang.StringBuffer of variable buffer does not match with type org.eclipse.emf.converter.util.ConverterUIUtil.DiagnosticHandler of variable diagnosticHandler
   2 | Unmatched statement buffer=new StringBuffer(value); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted