try { LeadPipeInputStream snk = new LeadPipeInputStream(); snk.setManagingComponent(managingTask); InputStream errPumpIn = snk; Reader reader = new InputStreamReader(errPumpIn, inputEncoding); if (errorFilterChains != null && errorFilterChains.size() > 0) { ChainReaderHelper helper = new ChainReaderHelper(); helper.setProject(managingTask.getProject()); helper.setPrimaryReader(reader); helper.setFilterChains(errorFilterChains); reader = helper.getAssembledReader(); } errPumpIn = new ReaderInputStream(reader, errorEncoding); Thread t = new Thread(threadGroup, new StreamPumper( errPumpIn, errorStream, true), "error pumper"); t.setPriority(Thread.MAX_PRIORITY); errorStream = new PipedOutputStream(snk); t.start(); } catch (IOException eyeOhEx) { throw new BuildException( "error setting up error stream", eyeOhEx); }
try { LeadPipeInputStream snk = new LeadPipeInputStream(); snk.setManagingComponent(managingTask); InputStream outPumpIn = snk; Reader reader = new InputStreamReader(outPumpIn, inputEncoding); if (outputFilterChains != null && outputFilterChains.size() > 0) { ChainReaderHelper helper = new ChainReaderHelper(); helper.setProject(managingTask.getProject()); helper.setPrimaryReader(reader); helper.setFilterChains(outputFilterChains); reader = helper.getAssembledReader(); } outPumpIn = new ReaderInputStream(reader, outputEncoding); Thread t = new Thread(threadGroup, new StreamPumper( outPumpIn, outputStream, true), "output pumper"); t.setPriority(Thread.MAX_PRIORITY); outputStream = new PipedOutputStream(snk); t.start(); } catch (IOException eyeOhEx) { throw new BuildException( "error setting up output stream", eyeOhEx); }
Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/Redirector.java File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/Redirector.java
Method name: void createStreams() Method name: void createStreams()
Number of AST nodes: 16 Number of AST nodes: 16
1
try {
1
try {
2
                LeadPipeInputStream snk = new LeadPipeInputStream();
2
                LeadPipeInputStream snk = new LeadPipeInputStream();
3
                snk.setManagingComponent(managingTask);
3
                snk.setManagingComponent(managingTask);
4
                InputStream errPumpIn = snk;
4
                InputStream outPumpIn = snk;
5
                Reader reader = new InputStreamReader(errPumpIn, inputEncoding);
5
                Reader reader = new InputStreamReader(outPumpIn, inputEncoding);
6
                if (errorFilterChains != null && errorFilterChains.size() > 0) {
6
                if (outputFilterChains != null && outputFilterChains.size() > 0) {
7
                    ChainReaderHelper helper = new ChainReaderHelper();
7
                    ChainReaderHelper helper = new ChainReaderHelper();
8
                    helper.setProject(managingTask.getProject());
8
                    helper.setProject(managingTask.getProject());
9
                    helper.setPrimaryReader(reader);
9
                    helper.setPrimaryReader(reader);
10
                    helper.setFilterChains(errorFilterChains);
10
                    helper.setFilterChains(outputFilterChains);
11
                    reader = helper.getAssembledReader();
11
                    reader = helper.getAssembledReader();
12
                }
12
                }
13
                errPumpIn = new ReaderInputStream(reader, errorEncoding);
13
                outPumpIn = new ReaderInputStream(reader, outputEncoding);
14
                Thread t = new Thread(threadGroup, new StreamPumper(
14
                Thread t = new Thread(threadGroup, new StreamPumper(
15
                    errPumpIn, errorStream, true), "error pumper");
15
                    outPumpIn, outputStream, true), "output pumper");
16
                t.setPriority(Thread.MAX_PRIORITY);
16
                t.setPriority(Thread.MAX_PRIORITY);
17
                errorStream = new PipedOutputStream(snk);
17
                outputStream = new PipedOutputStream(snk);
18
                t.start();
18
                t.start();
19
            } catch (IOException eyeOhEx) {
19
            } catch (IOException eyeOhEx) {
20
                throw new BuildException(
20
                throw new BuildException(
21
                    "error setting up error stream", eyeOhEx);
21
                    "error setting up output stream", eyeOhEx);
22
            }
22
            }
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.9
Clones locationClones are in the same method
Number of node comparisons137
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements16
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)7.9
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    51
    try
    51
    try
    34
    try
    Differences
    Expression1Expression2Difference
    "error setting up error stream""error setting up output stream"LITERAL_VALUE_MISMATCH
    34
    try
    52
    LeadPipeInputStream snk = new LeadPipeInputStream();
    35
    LeadPipeInputStream snk = new LeadPipeInputStream();
    53
    snk.setManagingComponent(managingTask);
    36
    snk.setManagingComponent(managingTask);
    54
    InputStream errPumpIn = snk;
    54
    InputStream errPumpIn = snk;
    37
    InputStream outPumpIn = snk;
    Differences
    Expression1Expression2Difference
    errPumpInoutPumpInVARIABLE_NAME_MISMATCH
    37
    InputStream outPumpIn = snk;
    55
    Reader reader = new InputStreamReader(errPumpIn, inputEncoding);
    55
    Reader reader = new InputStreamReader(errPumpIn, inputEncoding);
    38
    Reader reader = new InputStreamReader(outPumpIn, inputEncoding);
    Differences
    Expression1Expression2Difference
    errPumpInoutPumpInVARIABLE_NAME_MISMATCH
    38
    Reader reader = new InputStreamReader(outPumpIn, inputEncoding);
    56
    if (errorFilterChains != null && errorFilterChains.size() > 0)
    56
    if (errorFilterChains != null && errorFilterChains.size() > 0)
    39
    if (outputFilterChains != null && outputFilterChains.size() > 0)
    Differences
    Expression1Expression2Difference
    errorFilterChainsoutputFilterChainsVARIABLE_NAME_MISMATCH
    errorFilterChainsoutputFilterChainsVARIABLE_NAME_MISMATCH
    39
    if (outputFilterChains != null && outputFilterChains.size() > 0)
    57
    ChainReaderHelper helper = new ChainReaderHelper();
    40
    ChainReaderHelper helper = new ChainReaderHelper();
    58
    helper.setProject(managingTask.getProject());
    41
    helper.setProject(managingTask.getProject());
    59
    helper.setPrimaryReader(reader);
    42
    helper.setPrimaryReader(reader);
    60
    helper.setFilterChains(errorFilterChains);
    60
    helper.setFilterChains(errorFilterChains);
    43
    helper.setFilterChains(outputFilterChains);
    Differences
    Expression1Expression2Difference
    errorFilterChainsoutputFilterChainsVARIABLE_NAME_MISMATCH
    43
    helper.setFilterChains(outputFilterChains);
    61
    reader = helper.getAssembledReader();
    44
    reader = helper.getAssembledReader();
    62
    errPumpIn = new ReaderInputStream(reader, errorEncoding);
    62
    errPumpIn = new ReaderInputStream(reader, errorEncoding);
    45
    outPumpIn = new ReaderInputStream(reader, outputEncoding);
    Differences
    Expression1Expression2Difference
    errPumpInoutPumpInVARIABLE_NAME_MISMATCH
    errorEncodingoutputEncodingVARIABLE_NAME_MISMATCH
    45
    outPumpIn = new ReaderInputStream(reader, outputEncoding);
    63
    Thread t = new Thread(threadGroup, new StreamPumper(errPumpIn, errorStream, true), "error pumper");
    63
    Thread t = new Thread(threadGroup, new StreamPumper(errPumpIn, errorStream, true), "error pumper");
    46
    Thread t = new Thread(threadGroup, new StreamPumper(outPumpIn, outputStream, true), "output pumper");
    Differences
    Expression1Expression2Difference
    errPumpInoutPumpInVARIABLE_NAME_MISMATCH
    errorStreamoutputStreamVARIABLE_NAME_MISMATCH
    "error pumper""output pumper"LITERAL_VALUE_MISMATCH
    46
    Thread t = new Thread(threadGroup, new StreamPumper(outPumpIn, outputStream, true), "output pumper");
    64
    t.setPriority(Thread.MAX_PRIORITY);
    47
    t.setPriority(Thread.MAX_PRIORITY);
    65
    errorStream = new PipedOutputStream(snk);
    65
    errorStream = new PipedOutputStream(snk);
    48
    outputStream = new PipedOutputStream(snk);
    Differences
    Expression1Expression2Difference
    errorStreamoutputStreamVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression errorStream is a field being modified, and thus it cannot be parameterized
    Expression outputStream is a field being modified, and thus it cannot be parameterized
    48
    outputStream = new PipedOutputStream(snk);
    66
    t.start();
    49
    t.start();
    Precondition Violations (2)
    Row Violation
    1Expression errorStream is a field being modified, and thus it cannot be parameterized
    2Expression outputStream is a field being modified, and thus it cannot be parameterized