diff --git a/cim-boot-server/cim-boot-server.iml b/cim-boot-server/cim-boot-server.iml
index 08af5f8..6d0ab4a 100644
--- a/cim-boot-server/cim-boot-server.iml
+++ b/cim-boot-server/cim-boot-server.iml
@@ -143,6 +143,8 @@
+
+
diff --git a/cim-boot-server/cim-boot-server.ipr b/cim-boot-server/cim-boot-server.ipr
index ba48396..07d4d24 100644
--- a/cim-boot-server/cim-boot-server.ipr
+++ b/cim-boot-server/cim-boot-server.ipr
@@ -483,6 +483,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cim-boot-server/cim-boot-server.iws b/cim-boot-server/cim-boot-server.iws
index 35bf051..6c69322 100644
--- a/cim-boot-server/cim-boot-server.iws
+++ b/cim-boot-server/cim-boot-server.iws
@@ -8,229 +8,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -308,17 +90,6 @@
-
-
-
-
-
-
-
@@ -375,6 +146,9 @@
+
+
+
diff --git a/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar b/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar
index 772e0bb..5ccdbd3 100644
Binary files a/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar and b/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar differ
diff --git a/cim-boot-server/src/main/java/com/farsunset/cim/component/handler/ClosedHandler.java b/cim-boot-server/src/main/java/com/farsunset/cim/component/handler/ClosedHandler.java
index 8485b64..9886409 100644
--- a/cim-boot-server/src/main/java/com/farsunset/cim/component/handler/ClosedHandler.java
+++ b/cim-boot-server/src/main/java/com/farsunset/cim/component/handler/ClosedHandler.java
@@ -50,6 +50,10 @@ public class ClosedHandler implements CIMRequestHandler {
String uid = channel.attr(ChannelAttr.UID).get();
+ if (uid == null){
+ return;
+ }
+
String nid = channel.attr(ChannelAttr.ID).get();
sessionGroup.remove(channel);
diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java b/cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java
index 418631f..71ee845 100644
--- a/cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java
+++ b/cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java
@@ -20,9 +20,7 @@ public class SessionGroup extends ConcurrentHashMap>
@Override
public void operationComplete(ChannelFuture future){
future.removeListener(this);
-
remove(future.channel());
-
}
};
@@ -34,6 +32,10 @@ public class SessionGroup extends ConcurrentHashMap>
String uid = getKey(channel);
+ if(uid == null){
+ return;
+ }
+
Collection collections = getOrDefault(uid,EMPTY_LIST);
collections.remove(channel);