File tree Expand file tree Collapse file tree 2 files changed +13
-6
lines changed Expand file tree Collapse file tree 2 files changed +13
-6
lines changed Original file line number Diff line number Diff line change 1
1
import sbt .Keys ._
2
2
import sbt ._
3
3
import java .io .{ RandomAccessFile , File }
4
- import java .nio .channels .{ FileLock , OverlappingFileLockException }
4
+ import java .nio .channels .FileLock
5
+
5
6
object DottyBuild extends Build {
6
7
7
8
val TRAVIS_BUILD = " dotty.travis.build"
Original file line number Diff line number Diff line change @@ -42,11 +42,17 @@ abstract class CompilerTest extends DottyTest {
42
42
43
43
val generatePartestFiles = {
44
44
val partestLockFile = " ." + JFile .separator + " tests" + JFile .separator + " partest.lock"
45
- val partestLock = new RandomAccessFile (partestLockFile, " rw" ).getChannel.tryLock
46
- if (partestLock != null ) { // file not locked by sbt -> don't generate partest
47
- partestLock.release
48
- false
49
- } else true
45
+ try {
46
+ val partestLock = new RandomAccessFile (partestLockFile, " rw" ).getChannel.tryLock
47
+ if (partestLock != null ) { // file not locked by sbt -> don't generate partest
48
+ partestLock.release
49
+ false
50
+ } else true
51
+ } catch {
52
+ // if sbt doesn't fork in Test, the tryLock request will throw instead of
53
+ // returning null, because locks are per JVM, not per thread
54
+ case ex : java.nio.channels.OverlappingFileLockException => true
55
+ }
50
56
}
51
57
52
58
// Delete generated files from previous run
You can’t perform that action at this time.
0 commit comments