File tree 5 files changed +27
-4
lines changed
main/kotlin/io/rsocket/kotlin/internal
test/kotlin/io/rsocket/kotlin
rsocket-transport-okhttp/gradle/dependency-locks
5 files changed +27
-4
lines changed Original file line number Diff line number Diff line change @@ -41,9 +41,10 @@ subprojects {
41
41
api ' io.netty:netty-buffer'
42
42
api ' io.reactivex.rxjava2:rxjava'
43
43
api ' org.jetbrains.kotlin:kotlin-stdlib-jdk7'
44
+ api ' org.slf4j:slf4j-api'
45
+
44
46
compileOnly ' com.google.code.findbugs:jsr305'
45
47
46
- testImplementation ' org.slf4j:slf4j-api'
47
48
testImplementation ' junit:junit'
48
49
testImplementation ' org.mockito:mockito-core'
49
50
testImplementation ' org.hamcrest:hamcrest-library'
Original file line number Diff line number Diff line change @@ -10,3 +10,4 @@ org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50
10
10
org.jetbrains.kotlin:kotlin-stdlib:1.3.50
11
11
org.jetbrains:annotations:13.0
12
12
org.reactivestreams:reactive-streams:1.0.2
13
+ org.slf4j:slf4j-api:1.7.28
Original file line number Diff line number Diff line change @@ -61,6 +61,10 @@ internal class RSocketResponder(
61
61
connection
62
62
.onClose()
63
63
.subscribe({ completion.complete() }, errorConsumer)
64
+
65
+ requestHandler
66
+ .onClose()
67
+ .subscribe({ completion.complete() }, errorConsumer)
64
68
}
65
69
66
70
override fun fireAndForget (payload : Payload ): Completable {
@@ -291,7 +295,13 @@ internal class RSocketResponder(
291
295
292
296
private fun completeOnce (err : Throwable ) {
293
297
if (completed.compareAndSet(false , true )) {
298
+
294
299
receiveDisposable.dispose()
300
+
301
+ connection
302
+ .close()
303
+ .subscribe({}, errorConsumer)
304
+
295
305
requestHandler
296
306
.close()
297
307
.subscribe({}, errorConsumer)
Original file line number Diff line number Diff line change @@ -39,6 +39,15 @@ class RSocketResponderTest {
39
39
@get:Rule
40
40
val rule = ServerSocketRule ()
41
41
42
+ @Test(timeout = 2000 )
43
+ fun testRequestHandlerCloseTerminatesRSocket () {
44
+ rule.acceptingSocket.close()
45
+ .andThen(
46
+ rule.rsocket.onClose()
47
+ .mergeWith(rule.conn.onClose())
48
+ ).blockingAwait()
49
+ }
50
+
42
51
@Test(timeout = 2000 )
43
52
@Throws(Exception ::class )
44
53
fun testHandleResponseFrameNoError () {
@@ -110,7 +119,7 @@ class RSocketResponderTest {
110
119
111
120
lateinit var sender: PublishProcessor <Frame >
112
121
lateinit var receiver: PublishProcessor <Frame >
113
- private lateinit var conn: LocalDuplexConnection
122
+ lateinit var conn: LocalDuplexConnection
114
123
lateinit var errors: MutableList <Throwable >
115
124
internal lateinit var rsocket: RSocketResponder
116
125
@@ -137,9 +146,10 @@ class RSocketResponderTest {
137
146
}
138
147
139
148
fun setAccSocket (acceptingSocket : RSocket ) {
149
+ val cur = this .acceptingSocket
150
+ cur.close().subscribe()
151
+ cur.onClose().blockingAwait()
140
152
this .acceptingSocket = acceptingSocket
141
- acceptingSocket.close().subscribe()
142
- acceptingSocket.onClose().blockingAwait()
143
153
init ()
144
154
}
145
155
Original file line number Diff line number Diff line change @@ -12,3 +12,4 @@ org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50
12
12
org.jetbrains.kotlin:kotlin-stdlib:1.3.50
13
13
org.jetbrains:annotations:13.0
14
14
org.reactivestreams:reactive-streams:1.0.2
15
+ org.slf4j:slf4j-api:1.7.28
You can’t perform that action at this time.
0 commit comments