File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/folder/command/PrintMessageCommand.java | File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/folder/command/SaveMessageBodyAsCommand.java | |||
Method name: String getDecodedMessageBody()
|
Method name: String getDecodedMessageBody()
|
|||
Number of AST nodes: 13 | Number of AST nodes: 13 | |||
1 | int encoding = bodyHeader.getContentTransferEncoding();↵ | 1 | int encoding = bodyHeader.getContentTransferEncoding();↵ | |
2 | switch (encoding) {↵ | 2 | switch (encoding) {↵ | |
3 | case MimeHeader.QUOTED_PRINTABLE: {↵ | 3 | case MimeHeader.QUOTED_PRINTABLE: {↵ | |
4 | bodyStream = new QuotedPrintableDecoderInputStream(bodyStream);↵ | 4 | bodyStream = new QuotedPrintableDecoderInputStream(bodyStream);↵ | |
5 | break;↵ | 5 | break;↵ | |
6 | }↵ | 6 | }↵ | |
7 | case MimeHeader.BASE64: {↵ | 7 | case MimeHeader.BASE64: {↵ | |
8 | bodyStream = new Base64DecoderInputStream(bodyStream);↵ | 8 | bodyStream = new Base64DecoderInputStream(bodyStream);↵ | |
9 | break;↵ | 9 | break;↵ | |
10 | }↵ | 10 | }↵ | |
11 | }↵ | 11 | }↵ | |
12 | // First determine which charset to use↵ | 12 | // First determine which charset to use↵ | |
13 | if (charset == null) {↵ | 13 | if (charset == null) {↵ | |
14 | try {↵ | 14 | try {↵ | |
15 | // get charset from message↵ | 15 | // get charset from message↵ | |
16 | charset = Charset.forName(bodyHeader.getContentParameter("charset"));↵ | 16 | charset = Charset.forName(bodyHeader.getContentParameter("charset"));↵ | |
17 | } catch (Exception ex) {↵ | 17 | } catch (Exception ex) {↵ | |
18 | // decode using default charset↵ | 18 | // decode using default charset↵ | |
19 | charset = Charset.forName(System.getProperty("file.encoding"));↵ | 19 | charset = Charset.forName(System.getProperty("file.encoding"));↵ | |
20 | }↵ | 20 | }↵ | |
21 | }↵ | 21 | }↵ | |
22 | bodyStream = new CharsetDecoderInputStream(bodyStream, charset);↵ | 22 | bodyStream = new CharsetDecoderInputStream(bodyStream, charset);↵ | |
23 | return StreamUtils.readCharacterStream(bodyStream).toString(); | 23 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 1 |
Number of non-refactorable cases | 0 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.4 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 38 |
Number of mapped statements | 13 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 1.7 |
Clone type | Type 1 |
ID | Statement | ID | Statement | |
---|---|---|---|---|
1 | int encoding = bodyHeader.getContentTransferEncoding(); | 1 | int encoding = bodyHeader.getContentTransferEncoding(); | |
2 | switch (encoding) | 2 | switch (encoding) | |
3 | case MimeHeader.QUOTED_PRINTABLE: | 3 | case MimeHeader.QUOTED_PRINTABLE: | |
4 | bodyStream = new QuotedPrintableDecoderInputStream(bodyStream); | 4 | bodyStream = new QuotedPrintableDecoderInputStream(bodyStream); | |
5 | break; | 5 | break; | |
6 | case MimeHeader.BASE64: | 6 | case MimeHeader.BASE64: | |
7 | bodyStream = new Base64DecoderInputStream(bodyStream); | 7 | bodyStream = new Base64DecoderInputStream(bodyStream); | |
8 | break; | 8 | break; | |
9 | if (charset == null) | 9 | if (charset == null) | |
10 | try | 10 | try | |
11 | charset = Charset.forName(bodyHeader.getContentParameter("charset")); | 11 | charset = Charset.forName(bodyHeader.getContentParameter("charset")); | |
12 | bodyStream = new CharsetDecoderInputStream(bodyStream, charset); | 12 | bodyStream = new CharsetDecoderInputStream(bodyStream, charset); | |
13 | return StreamUtils.readCharacterStream(bodyStream).toString(); | 13 | return StreamUtils.readCharacterStream(bodyStream).toString(); |
Row | Violation |
---|