158-157-159

try { // We must check if the process was not stopped // before being here process.exitValue(); } catch (IllegalThreadStateException itse) { // the process is not terminated, if this is really // a timeout and not a manual stop then kill it. if (watch) { killedProcess = true; process.destroy(); } }
for (int i = 0; i < maxRunning; ++i) { if (running[i] != null && !running[i].isFinished()) { //System.out.println("Thread " + i + " is still alive "); // still running - wait for it try { semaphore.wait(); } catch (InterruptedException ie) { // who would interrupt me at a time like this? } continue outer2; } }

Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/ExecuteWatchdog.java |  | File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/Parallel.java
Method name: `void timeoutOccured(Watchdog)` |  | Method name: `void spinThreads()`
Number of AST nodes: 2 |  | Number of AST nodes: 5

1

    try {↵

2

                    // We must check if the process was not stopped↵

3

                    // before being here↵

4

                    process.exitValue();↵

1

    for (int i = 0; i < maxRunning; ++i) {↵

2

                        if (running[i] != null && !running[i].isFinished()) {↵

3

                            //System.out.println("Thread " + i + " is still alive ");↵

4

                            // still running - wait for it↵

5

                            try {↵

6

                                semaphore.wait();↵

5

                } catch (IllegalThreadStateException itse) {↵

7

                            } catch (InterruptedException ie) {↵

6

                    // the process is not terminated, if this is really↵

8

                ↵

7

                    // a timeout and not a manual stop then kill it.↵

9

                    // who would interrupt me at a time like this?↵

8

                    if (watch) {↵

10

                    ↵

9

          ↵

11

            }↵

10

                  killedProcess = true;↵

12

                  ↵

11

                        process.destroy();↵

13

              continue outer2;↵

12

                    }↵

14

                        }↵

13

                }

15

                    }

See real code fragment |  | See real code fragment

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