Prerequisites
These are MANDATORY, otherwise the issue will be automatically closed.
Issue description
The Kurento Group Call Example crashes when a second party joins a room where already another participant is waiting
Context
I was just trying to run the sample :)
I launched the the Java app like so:
mvn -U clean spring-boot:run -Dspring-boot.run.jvmArguments="-Dkms.url=ws://webrtc:8888/kurento"
My KMS runs at webrtc:8888 in my local network.
When the first party ("Alice") joins, the own video appears top left 320x240. Then on a second party ("Bob") joins the same room and boom.
The log from the Java side:
~/Documents/tmp/kurento-tutorial-java/kurento-group-call $ mvn -U clean spring-boot:run -Dspring-boot.run.jvmArguments="-Dkms.url=ws://webrtc:8888/kurento"
[INFO] Scanning for projects...
[INFO]
[INFO] --------------< org.kurento.tutorial:kurento-group-call >---------------
[INFO] Building Kurento Java Tutorial - Group Call 6.16.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ kurento-group-call ---
[INFO] Deleting /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call/target
[INFO]
[INFO] >>> spring-boot-maven-plugin:2.3.5.RELEASE:run (default-cli) > test-compile @ kurento-group-call >>>
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-java-version) @ kurento-group-call ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-maven-version) @ kurento-group-call ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-bytecode-version) @ kurento-group-call ---
[INFO] Adding ignore: module-info
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-ban-duplicate-classes) @ kurento-group-call ---
[INFO] Adding ignore: module-info
[INFO] Adding ignore: META-INF/versions/*/module-info
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BanDuplicateClasses failed with message:
Duplicate classes found:
Found in:
commons-logging:commons-logging:jar:1.2:compile
org.springframework:spring-jcl:jar:5.2.10.RELEASE:compile
Duplicate classes:
org/apache/commons/logging/Log.class
org/apache/commons/logging/LogFactory$1.class
org/apache/commons/logging/impl/NoOpLog.class
org/apache/commons/logging/impl/SimpleLog.class
org/apache/commons/logging/LogFactory.class
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-ban-circular-dependencies) @ kurento-group-call ---
[INFO]
[INFO] --- buildnumber-maven-plugin:1.4:create-timestamp (get-build-timestamp) @ kurento-group-call ---
[INFO]
[INFO] --- buildnumber-maven-plugin:1.4:create (get-scm-revision) @ kurento-group-call ---
[INFO] Executing: /bin/sh -c cd '/Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call' && 'git' 'rev-parse' '--verify' 'HEAD'
[INFO] Working directory: /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call
[INFO] Storing buildNumber: d235d82ba4d15dff52e63667c17e58a876d45b80 at timestamp: 1639990415668
[INFO] Storing buildScmBranch: master
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ kurento-group-call ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 7 resources
[INFO] Copying 2 resources
[INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ kurento-group-call ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 6 source files to /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call/target/classes
[WARNING] bootstrap class path not set in conjunction with -source 8
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ kurento-group-call ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ kurento-group-call ---
[INFO] No sources to compile
[INFO]
[INFO] <<< spring-boot-maven-plugin:2.3.5.RELEASE:run (default-cli) < test-compile @ kurento-group-call <<<
[INFO]
[INFO]
[INFO] --- spring-boot-maven-plugin:2.3.5.RELEASE:run (default-cli) @ kurento-group-call ---
[INFO] Attaching agents: []
.------------------------------------.
| |
| | |/ / _ _ _ ___ _ _| |_ ___ |
| | ' < || | '_/ -_) ' \ _/ _ \ |
| |_|\_\_,_|_| \___|_||_\__\___/ |
| |
'------------------------------------'
Kurento Java Tutorial - Group Call
Version 6.16.0
2021-12-20 09:53:39.487 INFO 39241 --- [ main] o.k.tutorial.groupcall.GroupCallApp : Starting GroupCallApp on MacBook-Pro.fritz.box with PID 39241 (/Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call/target/classes started by decades in /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call)
2021-12-20 09:53:39.491 INFO 39241 --- [ main] o.k.tutorial.groupcall.GroupCallApp : No active profile set, falling back to default profiles: default
2021-12-20 09:53:40.649 INFO 39241 --- [rbeatExec-e1-t0] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Connecting native client
2021-12-20 09:53:40.653 INFO 39241 --- [rbeatExec-e1-t0] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Creating new NioEventLoopGroup
2021-12-20 09:53:40.737 INFO 39241 --- [ntLoopGroup-2-1] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Initiating new Netty channel. Will create new handler too!
2021-12-20 09:53:41.748 INFO 39241 --- [ main] o.k.tutorial.groupcall.GroupCallApp : Started GroupCallApp in 2.818 seconds (JVM running for 3.214)
^C2021-12-20 09:53:45.299 WARN 39241 --- [extShutdownHook] o.k.j.c.AbstractJsonRpcClientWebSocket : [KurentoClient] Exception sending close message. org.kurento.jsonrpc.JsonRpcErrorException:'params' is requiered. Code: -32602. Data: {"type":"INVALID_PARAMS"}
2021-12-20 09:53:45.300 INFO 39241 --- [ntLoopGroup-2-1] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] channel closed
2021-12-20 09:53:45.306 WARN 39241 --- [extShutdownHook] o.k.j.c.AbstractJsonRpcClientWebSocket : [KurentoClient] Exception sending close message. org.kurento.jsonrpc.JsonRpcClientClosedException:Trying to send a message in a client closed explicitly. When a client is closed, it can't be reused. It is necessary to create another one
2021-12-20 09:53:45.306 WARN 39241 --- [extShutdownHook] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Trying to close a JsonRpcClientNettyWebSocket with channel == null
2021-12-20 09:53:45.307 WARN 39241 --- [extShutdownHook] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Trying to close a JsonRpcClientNettyWebSocket with group == null
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.131 s
[INFO] Finished at: 2021-12-20T09:53:45+01:00
[INFO] ------------------------------------------------------------------------
~/Documents/tmp/kurento-tutorial-java/kurento-group-call $ git checkout 6.16.1
error: Pfadspezifikation '6.16.1' stimmt mit keinen Git bekannten Dateien überein
~/Documents/tmp/kurento-tutorial-java/kurento-group-call $ mvn -U clean spring-boot:run -Dspring-boot.run.jvmArguments="-Dkms.url=ws://webrtc:8888/kurento"
[INFO] Scanning for projects...
[INFO]
[INFO] --------------< org.kurento.tutorial:kurento-group-call >---------------
[INFO] Building Kurento Java Tutorial - Group Call 6.16.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ kurento-group-call ---
[INFO] Deleting /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call/target
[INFO]
[INFO] >>> spring-boot-maven-plugin:2.3.5.RELEASE:run (default-cli) > test-compile @ kurento-group-call >>>
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-java-version) @ kurento-group-call ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-maven-version) @ kurento-group-call ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-bytecode-version) @ kurento-group-call ---
[INFO] Adding ignore: module-info
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-ban-duplicate-classes) @ kurento-group-call ---
[INFO] Adding ignore: module-info
[INFO] Adding ignore: META-INF/versions/*/module-info
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BanDuplicateClasses failed with message:
Duplicate classes found:
Found in:
commons-logging:commons-logging:jar:1.2:compile
org.springframework:spring-jcl:jar:5.2.10.RELEASE:compile
Duplicate classes:
org/apache/commons/logging/Log.class
org/apache/commons/logging/LogFactory$1.class
org/apache/commons/logging/impl/NoOpLog.class
org/apache/commons/logging/impl/SimpleLog.class
org/apache/commons/logging/LogFactory.class
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-ban-circular-dependencies) @ kurento-group-call ---
[INFO]
[INFO] --- buildnumber-maven-plugin:1.4:create-timestamp (get-build-timestamp) @ kurento-group-call ---
[INFO]
[INFO] --- buildnumber-maven-plugin:1.4:create (get-scm-revision) @ kurento-group-call ---
[INFO] Executing: /bin/sh -c cd '/Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call' && 'git' 'rev-parse' '--verify' 'HEAD'
[INFO] Working directory: /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call
[INFO] Storing buildNumber: d235d82ba4d15dff52e63667c17e58a876d45b80 at timestamp: 1639990445376
[INFO] Storing buildScmBranch: master
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ kurento-group-call ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 7 resources
[INFO] Copying 2 resources
[INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ kurento-group-call ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 6 source files to /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call/target/classes
[WARNING] bootstrap class path not set in conjunction with -source 8
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ kurento-group-call ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ kurento-group-call ---
[INFO] No sources to compile
[INFO]
[INFO] <<< spring-boot-maven-plugin:2.3.5.RELEASE:run (default-cli) < test-compile @ kurento-group-call <<<
[INFO]
[INFO]
[INFO] --- spring-boot-maven-plugin:2.3.5.RELEASE:run (default-cli) @ kurento-group-call ---
[INFO] Attaching agents: []
.------------------------------------.
| |
| | |/ / _ _ _ ___ _ _| |_ ___ |
| | ' < || | '_/ -_) ' \ _/ _ \ |
| |_|\_\_,_|_| \___|_||_\__\___/ |
| |
'------------------------------------'
Kurento Java Tutorial - Group Call
Version 6.16.0
2021-12-20 09:54:09.062 INFO 39280 --- [ main] o.k.tutorial.groupcall.GroupCallApp : Starting GroupCallApp on MacBook-Pro.fritz.box with PID 39280 (/Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call/target/classes started by decades in /Users/decades/Documents/tmp/kurento-tutorial-java/kurento-group-call)
2021-12-20 09:54:09.066 INFO 39280 --- [ main] o.k.tutorial.groupcall.GroupCallApp : No active profile set, falling back to default profiles: default
2021-12-20 09:54:10.197 INFO 39280 --- [rbeatExec-e1-t0] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Connecting native client
2021-12-20 09:54:10.200 INFO 39280 --- [rbeatExec-e1-t0] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Creating new NioEventLoopGroup
2021-12-20 09:54:10.277 INFO 39280 --- [ntLoopGroup-2-1] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Initiating new Netty channel. Will create new handler too!
2021-12-20 09:54:11.295 INFO 39280 --- [ main] o.k.tutorial.groupcall.GroupCallApp : Started GroupCallApp in 2.79 seconds (JVM running for 3.189)
2021-12-20 09:54:34.238 INFO 39280 --- [nio-8443-exec-1] o.k.tutorial.groupcall.CallHandler : PARTICIPANT Alice: trying to join room abcd
2021-12-20 09:54:34.300 INFO 39280 --- [nio-8443-exec-1] org.kurento.tutorial.groupcall.Room : ROOM abcd has been created
2021-12-20 09:54:34.300 INFO 39280 --- [nio-8443-exec-1] org.kurento.tutorial.groupcall.Room : ROOM abcd: adding participant Alice
2021-12-20 09:54:36.160 INFO 39280 --- [nio-8443-exec-8] o.k.tutorial.groupcall.UserSession : USER Alice: connecting with Alice in room abcd
2021-12-20 09:54:51.230 INFO 39280 --- [nio-8443-exec-4] o.k.tutorial.groupcall.CallHandler : PARTICIPANT Bob: trying to join room abcd
2021-12-20 09:54:51.231 INFO 39280 --- [nio-8443-exec-4] org.kurento.tutorial.groupcall.Room : ROOM abcd: adding participant Bob
2021-12-20 09:54:51.267 ERROR 39280 --- [nio-8443-exec-4] w.s.h.ExceptionWebSocketHandlerDecorator : Closing session due to exception for StandardWebSocketSession[id=5f224b36-3b36-98d7-7077-3572d6287e65, uri=wss://localhost:8443/groupcall]
org.kurento.client.internal.server.KurentoServerException: Object '44d72889-9ccd-4525-8dcc-bb60f922bed4_kurento.MediaPipeline' not found (Code:40101, Type:null, Data: {"type":"MEDIA_OBJECT_NOT_FOUND"})
at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.sendRequest(RomClientJsonRpcClient.java:264) ~[kurento-client-6.16.0.jar:6.16.0]
at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.create(RomClientJsonRpcClient.java:157) ~[kurento-client-6.16.0.jar:6.16.0]
at org.kurento.client.internal.transport.jsonrpc.RomClientJsonRpcClient.create(RomClientJsonRpcClient.java:147) ~[kurento-client-6.16.0.jar:6.16.0]
at org.kurento.client.internal.client.RomManager.create(RomManager.java:59) ~[kurento-client-6.16.0.jar:6.16.0]
at org.kurento.client.internal.client.RomManager.createWithKurentoObject(RomManager.java:257) ~[kurento-client-6.16.0.jar:6.16.0]
at org.kurento.client.AbstractBuilder.build(AbstractBuilder.java:65) ~[kurento-client-6.16.0.jar:6.16.0]
at org.kurento.tutorial.groupcall.UserSession.<init>(UserSession.java:64) ~[classes/:na]
at org.kurento.tutorial.groupcall.Room.join(Room.java:69) ~[classes/:na]
at org.kurento.tutorial.groupcall.CallHandler.joinRoom(CallHandler.java:103) ~[classes/:na]
at org.kurento.tutorial.groupcall.CallHandler.handleTextMessage(CallHandler.java:66) ~[classes/:na]
at org.springframework.web.socket.handler.AbstractWebSocketHandler.handleMessage(AbstractWebSocketHandler.java:43) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.handler.WebSocketHandlerDecorator.handleMessage(WebSocketHandlerDecorator.java:75) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.handleMessage(LoggingWebSocketHandlerDecorator.java:56) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator.handleMessage(ExceptionWebSocketHandlerDecorator.java:58) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:114) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.access$000(StandardWebSocketHandlerAdapter.java:43) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:85) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:82) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:402) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:502) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:301) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
2021-12-20 09:54:51.272 WARN 39280 --- [nio-8443-exec-4] w.s.h.ExceptionWebSocketHandlerDecorator : Unhandled exception after connection closed for ExceptionWebSocketHandlerDecorator [delegate=LoggingWebSocketHandlerDecorator [delegate=org.kurento.tutorial.groupcall.CallHandler@706fe5c6]]
java.lang.NullPointerException: null
at org.kurento.tutorial.groupcall.UserRegistry.removeBySession(UserRegistry.java:57) ~[classes/:na]
at org.kurento.tutorial.groupcall.CallHandler.afterConnectionClosed(CallHandler.java:93) ~[classes/:na]
at org.springframework.web.socket.handler.WebSocketHandlerDecorator.afterConnectionClosed(WebSocketHandlerDecorator.java:85) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.afterConnectionClosed(LoggingWebSocketHandlerDecorator.java:72) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator.afterConnectionClosed(ExceptionWebSocketHandlerDecorator.java:78) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.onClose(StandardWebSocketHandlerAdapter.java:145) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:556) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:502) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:460) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsSession.close(WsSession.java:447) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.closeInternal(StandardWebSocketSession.java:235) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.AbstractWebSocketSession.close(AbstractWebSocketSession.java:142) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator.tryCloseWithError(ExceptionWebSocketHandlerDecorator.java:94) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator.handleMessage(ExceptionWebSocketHandlerDecorator.java:61) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:114) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.access$000(StandardWebSocketHandlerAdapter.java:43) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:85) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:82) ~[spring-websocket-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:402) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:502) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:301) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148) ~[tomcat-embed-websocket-9.0.39.jar:9.0.39]
at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
How to reproduce?
- Checkout the project and run it
Expected & current behavior
Should not crash
(Optional) Possible solution
No idea
Info about your environment
I'm using a source installation of the latest Kurento Media Server in a VM on an Apple MBP, Apple silicon
About Kurento Media Server

- Kurento version: 6.16.1
- Server OS: Ubuntu 64 bit ARM Server 20.04.3
- Installation method:
About your Application Server
- Programming Language:
- Kurento Client version:
About end-user clients
- Device(s): Apple MBP 2021, Apple Silicon
- OS(es): macOS Monterey, 12.0.1
- Browser(s): Version 96.0.4664.110 (Offizieller Build) (arm64)
Run these commands
kurento-media-server --version
dpkg -l | grep -Pi 'kurento|kms-|gst.*1.5|nice'
Prerequisites
These are MANDATORY, otherwise the issue will be automatically closed.
Issue description
The Kurento Group Call Example crashes when a second party joins a room where already another participant is waiting
Context
I was just trying to run the sample :)
I launched the the Java app like so:
My KMS runs at
webrtc:8888in my local network.When the first party ("Alice") joins, the own video appears top left 320x240. Then on a second party ("Bob") joins the same room and boom.
The log from the Java side:
How to reproduce?
Expected & current behavior
Should not crash
(Optional) Possible solution
No idea
Info about your environment
I'm using a source installation of the latest Kurento Media Server in a VM on an Apple MBP, Apple silicon
About Kurento Media Server
About your Application Server
About end-user clients
Run these commands