while (mutex) { try { wait(); } catch (InterruptedException e) { if (Thread.currentThread().isInterrupted()) { // gota go now throw new RuntimeException(e); } // else keep waiting } }
while (!tryToGetLock(theLocker)) { try { wait(); } catch (InterruptedException e) { // nothing to do } }
Clone fragments detected by clone detection tool
File path: /columba-1.4-src/core/src/main/java/org/columba/core/base/Mutex.java File path: /columba-1.4-src/core/src/main/java/org/columba/core/base/Lock.java
Method name: void lock() Method name: void getLock(Object)
Number of AST nodes: 3 Number of AST nodes: 3
1
while (mutex) {
1
while (
2
            try {
3
                wait();
4
            } catch (InterruptedException e) {
5
                if (Thread.currentThread().isInterrupted()) {
6
                    // gota go now
7
                    throw new RuntimeException(e);
8
                }
9
                // else keep waiting
10
            }
11
        
2
!tryToGetLock(theLocker)) {
3
	    try {
4
		wait();
5
	    } catch (InterruptedException e) {
6
		// nothing to do
7
	    }
12
}
8
	}
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.1
Clones locationClones are in different classes
Number of node comparisons1