@@ -9,50 +9,77 @@ import java.util.function.BiFunction
9
9
trait BuildServerForwardStubs extends b.BuildServer {
10
10
protected def forwardTo : b.BuildServer
11
11
12
- protected def onFatalError (throwable : Throwable ): Unit
12
+ protected def onFatalError (throwable : Throwable , context : String ): Unit
13
13
14
- def fatalExceptionHandler [T ] = new BiFunction [T , Throwable , T ] {
14
+ def fatalExceptionHandler [T ]( methodName : String , params : Any * ) = new BiFunction [T , Throwable , T ] {
15
15
override def apply (maybeValue : T , maybeException : Throwable ): T =
16
16
maybeException match {
17
17
case null =>
18
18
maybeValue
19
19
case error =>
20
- onFatalError(error)
20
+ val methodContext = s " bloop bsp server, method: $methodName"
21
+ val context =
22
+ if (params.isEmpty) methodContext
23
+ else
24
+ params.mkString(s " $methodContext, with params: " , " , " , " " )
25
+ onFatalError(error, context)
21
26
throw error
22
27
}
23
28
}
24
29
25
30
override def buildShutdown (): CompletableFuture [Object ] =
26
- forwardTo.buildShutdown().handleAsync(fatalExceptionHandler)
31
+ forwardTo.buildShutdown().handleAsync(fatalExceptionHandler(" buildShutdown" ))
32
+
27
33
override def buildTargetCleanCache (
28
34
params : b.CleanCacheParams
29
35
): CompletableFuture [b.CleanCacheResult ] =
30
- forwardTo.buildTargetCleanCache(params).handleAsync(fatalExceptionHandler)
36
+ forwardTo.buildTargetCleanCache(params)
37
+ .handleAsync(fatalExceptionHandler(" buildTargetCleanCache" , params))
38
+
31
39
override def buildTargetCompile (params : b.CompileParams ): CompletableFuture [b.CompileResult ] =
32
- forwardTo.buildTargetCompile(params).handleAsync(fatalExceptionHandler)
40
+ forwardTo.buildTargetCompile(params)
41
+ .handleAsync(fatalExceptionHandler(" buildTargetCompile" , params))
42
+
33
43
override def buildTargetDependencySources (
34
44
params : b.DependencySourcesParams
35
45
): CompletableFuture [b.DependencySourcesResult ] =
36
- forwardTo.buildTargetDependencySources(params).handleAsync(fatalExceptionHandler)
46
+ forwardTo.buildTargetDependencySources(params)
47
+ .handleAsync(fatalExceptionHandler(" buildTargetDependencySources" , params))
48
+
37
49
override def buildTargetInverseSources (
38
50
params : b.InverseSourcesParams
39
51
): CompletableFuture [b.InverseSourcesResult ] =
40
- forwardTo.buildTargetInverseSources(params).handleAsync(fatalExceptionHandler)
52
+ forwardTo.buildTargetInverseSources(params)
53
+ .handleAsync(fatalExceptionHandler(" buildTargetInverseSources" , params))
54
+
41
55
override def buildTargetResources (
42
56
params : b.ResourcesParams
43
57
): CompletableFuture [b.ResourcesResult ] =
44
- forwardTo.buildTargetResources(params).handleAsync(fatalExceptionHandler)
58
+ forwardTo.buildTargetResources(params)
59
+ .handleAsync(fatalExceptionHandler(" buildTargetResources" , params))
60
+
45
61
override def buildTargetRun (params : b.RunParams ): CompletableFuture [b.RunResult ] =
46
- forwardTo.buildTargetRun(params).handleAsync(fatalExceptionHandler)
62
+ forwardTo.buildTargetRun(params)
63
+ .handleAsync(fatalExceptionHandler(" buildTargetRun" , params))
64
+
47
65
override def buildTargetSources (params : b.SourcesParams ): CompletableFuture [b.SourcesResult ] =
48
- forwardTo.buildTargetSources(params).handleAsync(fatalExceptionHandler)
66
+ forwardTo.buildTargetSources(params)
67
+ .handleAsync(fatalExceptionHandler(" buildTargetSources" , params))
68
+
49
69
override def buildTargetTest (params : b.TestParams ): CompletableFuture [b.TestResult ] =
50
- forwardTo.buildTargetTest(params).handleAsync(fatalExceptionHandler)
70
+ forwardTo.buildTargetTest(params)
71
+ .handleAsync(fatalExceptionHandler(" buildTargetTest" , params))
72
+
51
73
override def workspaceBuildTargets (): CompletableFuture [b.WorkspaceBuildTargetsResult ] =
52
- forwardTo.workspaceBuildTargets().handleAsync(fatalExceptionHandler)
74
+ forwardTo.workspaceBuildTargets()
75
+ .handleAsync(fatalExceptionHandler(" workspaceBuildTargets" ))
76
+
53
77
override def workspaceReload (): CompletableFuture [Object ] =
54
- forwardTo.workspaceReload().handleAsync(fatalExceptionHandler)
78
+ forwardTo.workspaceReload()
79
+ .handleAsync(fatalExceptionHandler(" workspaceReload" ))
80
+
55
81
override def buildTargetDependencyModules (params : DependencyModulesParams )
56
82
: CompletableFuture [DependencyModulesResult ] =
57
- forwardTo.buildTargetDependencyModules(params).handleAsync(fatalExceptionHandler)
83
+ forwardTo.buildTargetDependencyModules(params)
84
+ .handleAsync(fatalExceptionHandler(" buildTargetDependencyModules" , params))
58
85
}
0 commit comments