switch (encoding) { case MimeHeader.QUOTED_PRINTABLE: { body = new QuotedPrintableDecoderInputStream(body); break; } case MimeHeader.BASE64: { body = new Base64DecoderInputStream(body); break; } } if (charsetName != null) { Charset charset; try { charset = Charset.forName(charsetName); } catch (UnsupportedCharsetException e) { charset = Charset.forName(System.getProperty("file.encoding")); } body = new CharsetDecoderInputStream(body, charset); }
switch (encoding) { case MimeHeader.QUOTED_PRINTABLE: { bodyStream = new QuotedPrintableDecoderInputStream(bodyStream); break; } case MimeHeader.BASE64: { bodyStream = new Base64DecoderInputStream(bodyStream); break; } } if (charsetName != null) { Charset charset; try { charset = Charset.forName(charsetName); } catch (UnsupportedCharsetException e) { charset = Charset.forName(System.getProperty("file.encoding")); } bodyStream = new CharsetDecoderInputStream(bodyStream, charset); }
Clone fragments detected by clone detection tool
File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/composer/MessageBuilderHelper.java File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/folder/AbstractMessageFolder.java
Method name: String createBodyText(MimePart) Method name: InputStream decodeStream(MimeHeader, InputStream)
Number of AST nodes: 12 Number of AST nodes: 12
1
switch (encoding) {
1
switch (encoding) {
2
		case MimeHeader.QUOTED_PRINTABLE: {
2
		case MimeHeader.QUOTED_PRINTABLE: {
3
			body = new QuotedPrintableDecoderInputStream(body);
3
			bodyStream = new QuotedPrintableDecoderInputStream(bodyStream);
4
			break;
4
			break;
5
		}
5
		}
6
		case MimeHeader.BASE64: {
6
		case MimeHeader.BASE64: {
7
			body = new Base64DecoderInputStream(body);
7
			bodyStream = new Base64DecoderInputStream(bodyStream);
8
			break;
8
			break;
9
		}
9
		}
10
		}
10
		}
11
		if (charsetName != null) {
11
		if (charsetName != null) {
12
			Charset charset;
12
			Charset charset;
13
			try {
13
			try {
14
				charset = Charset.forName(charsetName);
14
				charset = Charset.forName(charsetName);
15
			} catch (UnsupportedCharsetException e) {
15
			} catch (UnsupportedCharsetException e) {
16
				charset = Charset.forName(System.getProperty("file.encoding"));
16
				charset = Charset.forName(System.getProperty("file.encoding"));
17
			}
17
			}
18
			body = new CharsetDecoderInputStream(body, charset);
18
			bodyStream = new CharsetDecoderInputStream(bodyStream, charset);
19
		}
19
		}
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.3
Clones locationClones are in different classes
Number of node comparisons41
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements12
    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.4
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    5
    switch (encoding)
    3
    switch (encoding)
    6
    case MimeHeader.QUOTED_PRINTABLE:
    4
    case MimeHeader.QUOTED_PRINTABLE:
    7
    body = new QuotedPrintableDecoderInputStream(body);
    7
    body = new QuotedPrintableDecoderInputStream(body);
    5
    bodyStream = new QuotedPrintableDecoderInputStream(bodyStream);
    Differences
    Expression1Expression2Difference
    bodybodyStreamVARIABLE_NAME_MISMATCH
    bodybodyStreamVARIABLE_NAME_MISMATCH
    5
    bodyStream = new QuotedPrintableDecoderInputStream(bodyStream);
    8
    break;
    6
    break;
    9
    case MimeHeader.BASE64:
    7
    case MimeHeader.BASE64:
    10
    body = new Base64DecoderInputStream(body);
    10
    body = new Base64DecoderInputStream(body);
    8
    bodyStream = new Base64DecoderInputStream(bodyStream);
    Differences
    Expression1Expression2Difference
    bodybodyStreamVARIABLE_NAME_MISMATCH
    bodybodyStreamVARIABLE_NAME_MISMATCH
    8
    bodyStream = new Base64DecoderInputStream(bodyStream);
    11
    break;
    9
    break;
    12
    if (charsetName != null)
    10
    if (charsetName != null)
    13
    Charset charset;
    11
    Charset charset;
    14
    try
    12
    try
    15
    charset = Charset.forName(charsetName);
    13
    charset = Charset.forName(charsetName);
    16
    body = new CharsetDecoderInputStream(body, charset);
    16
    body = new CharsetDecoderInputStream(body, charset);
    14
    bodyStream = new CharsetDecoderInputStream(bodyStream, charset);
    Differences
    Expression1Expression2Difference
    bodybodyStreamVARIABLE_NAME_MISMATCH
    bodybodyStreamVARIABLE_NAME_MISMATCH
    14
    bodyStream = new CharsetDecoderInputStream(bodyStream, charset);
    Precondition Violations (0)
    Row Violation