diff --git a/client/pom.xml b/client/pom.xml
index 2594c4045754bda783ffbf8f23b846be5052bf24..3e8ecd251e66e1b21586c7be36496f604d226943 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.red5</groupId>
<artifactId>red5-parent</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>red5-client</artifactId>
diff --git a/client/src/main/java/org/red5/client/Red5Client.java b/client/src/main/java/org/red5/client/Red5Client.java
index db56837db20ce7400413d85b51c7ce4071ccd391..ff0a082e26d14f949fe4a3f9a89b072b072e3642 100644
--- a/client/src/main/java/org/red5/client/Red5Client.java
+++ b/client/src/main/java/org/red5/client/Red5Client.java
@@ -18,7 +18,7 @@ public final class Red5Client {
/**
* Current server version with revision
*/
- public static final String VERSION = "Red5 Client 1.3.4";
+ public static final String VERSION = "Red5 Client 1.3.5";
/**
* Create a new Red5Client object using the connection local to the current thread A bit of magic that lets you access the red5 scope
diff --git a/common/pom.xml b/common/pom.xml
index 35d8686172763a75546c5e03e794acce6a3e2e35..038fe0677c1e02b3f78c4ce9ce594b0a79c4762e 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.red5</groupId>
<artifactId>red5-parent</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>red5-server-common</artifactId>
@@ -124,7 +124,7 @@
<dependency>
<groupId>net.engio</groupId>
<artifactId>mbassador</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</dependency> -->
<dependency>
<groupId>junit</groupId>
diff --git a/common/src/main/java/org/red5/server/api/Red5.java b/common/src/main/java/org/red5/server/api/Red5.java
index 50c0dfa986fcb3d69435fef6181c8d1a7b0c6d3c..997eca6e1317641221f4343edcd2a4df2c64a495 100644
--- a/common/src/main/java/org/red5/server/api/Red5.java
+++ b/common/src/main/java/org/red5/server/api/Red5.java
@@ -55,12 +55,12 @@ public final class Red5 {
/**
* Server version with revision
*/
- public static final String VERSION = "Red5 Server 1.3.4";
+ public static final String VERSION = "Red5 Server 1.3.5";
/**
* Server version for fmsVer requests
*/
- public static final String FMS_VERSION = "RED5/1,3,4,0";
+ public static final String FMS_VERSION = "RED5/1,3,5,0";
/**
* Server capabilities
diff --git a/io/pom.xml b/io/pom.xml
index d5c75c138bb6f0ee1bceeaa915ba9d046a93066b..9c198d7c7ab409585f673dd891042a10b096a117 100644
--- a/io/pom.xml
+++ b/io/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.red5</groupId>
<artifactId>red5-parent</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>red5-io</artifactId>
diff --git a/pom.xml b/pom.xml
index ad7bf57994ab882b0b11c89659164a280e2f45fd..6256ddfe70843727106ca57bbb647d9d69545517 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
<name>Red5</name>
<description>The Red5 server</description>
<groupId>org.red5</groupId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
<url>https://github.com/Red5/red5-server</url>
<inceptionYear>2005</inceptionYear>
<organization>
diff --git a/server/pom.xml b/server/pom.xml
index 2c6a243a25798182baacc06ccc4a9c4a6934a17f..e79650be1acf29ce44179a55ed8abbe60c7c8e53 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.red5</groupId>
<artifactId>red5-parent</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>red5-server</artifactId>
diff --git a/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java b/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java
index d30e67ee9b10bb8926b96bd65d63ba93cfd5717a..1d67cb512e723353dd30ec54ecbd8bde5aebeafb 100644
--- a/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java
+++ b/server/src/main/java/org/red5/net/websocket/WebSocketConnection.java
@@ -322,16 +322,15 @@ public class WebSocketConnection extends AttributeStore implements Comparable<We
if (connected.compareAndSet(true, false)) {
log.debug("close: {}", wsSessionId);
WsSession session = wsSession != null ? wsSession.get() : null;
- if (session != null && session.isOpen()) {
- // clean up internal ws session maps since close doesnt
- //if (session.isOpen()) {
- // session.getPathParameters().clear();
- // session.getUserProperties().clear();
- //}
- // ensure the endpoint is closed
- CloseReason reason = new CloseReason(CloseCodes.GOING_AWAY, "");
- // close the socket, don't wait for the browser to respond or we could hang
- session.onClose(reason);
+ WebSocketScopeManager manager = null;
+ if (session != null) {
+ manager = (WebSocketScopeManager) session.getUserProperties().get(WSConstants.WS_MANAGER);
+ if (session.isOpen()) {
+ // ensure the endpoint is closed
+ CloseReason reason = new CloseReason(CloseCodes.GOING_AWAY, "");
+ // close the socket, don't wait for the browser to respond or we could hang
+ session.onClose(reason);
+ }
}
// clean up our props
attributes.clear();
@@ -346,6 +345,10 @@ public class WebSocketConnection extends AttributeStore implements Comparable<We
if (headers != null) {
headers = null;
}
+ // fire callback for manager
+ if (manager != null) {
+ manager.removeConnection(this);
+ }
if (scope.get() != null) {
// disconnect from scope
scope.get().removeConnection(this);
diff --git a/service/pom.xml b/service/pom.xml
index 893321c485e08bf89e203f57f7997c8721e2da02..b612c205cb50bc5a9463eea458d259ba1d0f326e 100644
--- a/service/pom.xml
+++ b/service/pom.xml
@@ -3,7 +3,7 @@
<parent>
<groupId>org.red5</groupId>
<artifactId>red5-parent</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>red5-service</artifactId>