Browse Source

XHRPollingTransport NPE fixed

master
Nikita 14 years ago
parent
commit
4825085782
  1. 3
      .gitignore
  2. 2
      src/main/java/com/corundumstudio/socketio/HeartbeatHandler.java
  3. 17
      src/main/java/com/corundumstudio/socketio/NullChannelFuture.java
  4. 1
      src/main/java/com/corundumstudio/socketio/SocketIORouter.java
  5. 6
      src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java

3
.gitignore

@ -1,4 +1,5 @@
/.settings
/.classpath
/.project
/.project
/target

2
src/main/java/com/corundumstudio/socketio/HeartbeatHandler.java

@ -45,7 +45,6 @@ public class HeartbeatHandler {
cancelHeartbeatCheck(client);
executorService.schedule(new Runnable() {
@Override
public void run() {
sendHeartbeat(client);
}
@ -62,7 +61,6 @@ public class HeartbeatHandler {
public void sendHeartbeat(final SocketIOClient client) {
client.send(new Packet(PacketType.HEARTBEAT));
scheduleHeartbeatCheck(client.getSessionId(), new Runnable() {
@Override
public void run() {
client.disconnect();
UUID sessionId = client.getSessionId();

17
src/main/java/com/corundumstudio/socketio/NullChannelFuture.java

@ -24,52 +24,42 @@ public class NullChannelFuture implements ChannelFuture {
private final Logger log = LoggerFactory.getLogger(getClass());
@Override
public Channel getChannel() {
throw new UnsupportedOperationException();
}
@Override
public boolean isDone() {
return true;
}
@Override
public boolean isCancelled() {
return false;
}
@Override
public boolean isSuccess() {
return false;
}
@Override
public Throwable getCause() {
return null;
}
@Override
public boolean cancel() {
return false;
}
@Override
public boolean setSuccess() {
return false;
}
@Override
public boolean setFailure(Throwable cause) {
return false;
}
@Override
public boolean setProgress(long amount, long current, long total) {
return false;
}
@Override
public void addListener(ChannelFutureListener listener) {
try {
listener.operationComplete(this);
@ -78,37 +68,30 @@ public class NullChannelFuture implements ChannelFuture {
}
}
@Override
public void removeListener(ChannelFutureListener listener) {
}
@Override
public ChannelFuture await() throws InterruptedException {
return this;
}
@Override
public ChannelFuture awaitUninterruptibly() {
return this;
}
@Override
public boolean await(long timeout, TimeUnit unit)
throws InterruptedException {
return true;
}
@Override
public boolean await(long timeoutMillis) throws InterruptedException {
return true;
}
@Override
public boolean awaitUninterruptibly(long timeout, TimeUnit unit) {
return true;
}
@Override
public boolean awaitUninterruptibly(long timeoutMillis) {
return true;
}

1
src/main/java/com/corundumstudio/socketio/SocketIORouter.java

@ -148,7 +148,6 @@ public class SocketIORouter {
client.doReconnect(channel, msg);
log.debug("New sessionId: {} authorized", sessionId);
heartbeatHandler.scheduleHeartbeatCheck(sessionId, new Runnable() {
@Override
public void run() {
authorizedSessionIds.remove(sessionId);
log.debug("Authorized sessionId: {} cleared due to connect timeout", sessionId);

6
src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java

@ -64,7 +64,6 @@ public class XHRPollingTransport implements SocketIOTransport {
this.packetListener = packetListener;
}
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
Object msg = e.getMessage();
if (msg instanceof HttpRequest) {
@ -89,7 +88,10 @@ public class XHRPollingTransport implements SocketIOTransport {
if (parts.length > 3) {
UUID sessionId = UUID.fromString(parts[4]);
XHRPollingClient client = sessionId2Client.get(sessionId);
if (client == null) {
// client was disconnected
return;
}
String content = msg.getContent().toString(CharsetUtil.UTF_8);
log.trace("Request content: {}", content);
List<Packet> packets = decoder.decodePayload(content);

Loading…
Cancel
Save