@@ -14,13 +14,7 @@ import com.intellij.execution.runners.ProgramRunner
14
14
import com.intellij.execution.ui.ConsoleView
15
15
import com.intellij.execution.ui.ConsoleViewContentType
16
16
import com.intellij.openapi.project.Project
17
- import com.intellij.openapi.util.io.StreamUtil
18
- import java.io.BufferedInputStream
19
- import java.io.BufferedOutputStream
20
- import java.io.InputStream
21
17
import java.io.OutputStream
22
- import java.nio.channels.Channels
23
- import java.nio.channels.Pipe
24
18
25
19
open class DevInRunConfigurationProfileState (
26
20
private val myProject : Project ,
@@ -33,62 +27,34 @@ open class DevInRunConfigurationProfileState(
33
27
val console: ConsoleView = ConsoleViewWrapperBase (ConsoleViewImpl (myProject, true ))
34
28
35
29
console.attachToProcess(processHandler)
36
- processHandler.startNotify()
37
30
38
31
console.print (" Hello, World!" , ConsoleViewContentType .NORMAL_OUTPUT )
39
- processHandler.destroyProcess()
40
32
41
- return DefaultExecutionResult (console, processHandler)
33
+ // done!
34
+ processHandler.detachProcess()
35
+
36
+ val result = DefaultExecutionResult (console, processHandler)
37
+
38
+ return result
42
39
}
43
40
44
41
@Throws(ExecutionException ::class )
45
42
private fun createProcessHandler (myExecutionName : String ): ProcessHandler {
46
43
return object : BuildProcessHandler () {
47
- var myProcessInputWriter: OutputStream ? = null
48
- var myProcessInputReader: InputStream ? = null
49
-
50
- init {
51
- val pipe = Pipe .open()
52
-
53
- myProcessInputWriter = BufferedOutputStream (Channels .newOutputStream(pipe.sink()))
54
- myProcessInputReader = BufferedInputStream (Channels .newInputStream(pipe.source()))
55
- }
56
-
57
44
override fun detachIsDefault (): Boolean = false
58
45
59
46
override fun destroyProcessImpl () {
60
- try {
61
- // cancel myTask
62
- // myTask?.cancel()
63
- } finally {
64
- closeInput()
65
- }
66
-
67
- // execute default process destroy
68
- super .destroyProcess()
69
47
}
70
48
71
49
override fun detachProcessImpl () {
72
- try {
73
- notifyProcessDetached()
74
- } finally {
75
- closeInput()
76
- }
77
-
78
- super .detachProcess()
50
+ notifyProcessTerminated(0 );
79
51
}
80
52
81
- override fun getProcessInput (): OutputStream ? = myProcessInputWriter
53
+ override fun getProcessInput (): OutputStream ? = null
82
54
override fun getExecutionName (): String = myExecutionName
83
55
84
56
protected fun closeInput () {
85
- val processInputWriter = myProcessInputWriter
86
- val processInputReader = myProcessInputReader
87
- myProcessInputWriter = null
88
- myProcessInputReader = null
89
57
90
- processInputWriter?.close()
91
- processInputReader?.close()
92
58
}
93
59
}
94
60
}
0 commit comments