From 9131e934e5ef8701e35b0f17bf161b693d8b4bf5 Mon Sep 17 00:00:00 2001 From: Nikita Date: Sat, 29 Sep 2012 12:58:32 +0400 Subject: [PATCH] Ack packet detection bug fixed --- .../com/corundumstudio/socketio/PacketHandler.java | 4 +++- .../com/corundumstudio/socketio/parser/Packet.java | 10 +++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/corundumstudio/socketio/PacketHandler.java b/src/main/java/com/corundumstudio/socketio/PacketHandler.java index f884589..7767c77 100644 --- a/src/main/java/com/corundumstudio/socketio/PacketHandler.java +++ b/src/main/java/com/corundumstudio/socketio/PacketHandler.java @@ -15,6 +15,8 @@ */ package com.corundumstudio.socketio; +import java.util.Collections; + import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.channel.ChannelHandler.Sharable; import org.jboss.netty.channel.ChannelHandlerContext; @@ -64,7 +66,7 @@ public class PacketHandler extends SimpleChannelUpstreamHandler { SocketIOClient client = message.getClient().getChildClient(ns); AckRequest ackSender = new AckRequest(packet, client); packetListener.onPacket(packet, client, ackSender); - ackSender.sendAckData((Object)null); + ackSender.sendAckData(Collections.emptyList()); } } else { ctx.sendUpstream(e); diff --git a/src/main/java/com/corundumstudio/socketio/parser/Packet.java b/src/main/java/com/corundumstudio/socketio/parser/Packet.java index 6b29d5c..b096466 100644 --- a/src/main/java/com/corundumstudio/socketio/parser/Packet.java +++ b/src/main/java/com/corundumstudio/socketio/parser/Packet.java @@ -138,8 +138,16 @@ public class Packet { this.advice = advice; } + private boolean isJsonAck() { + return (Boolean.TRUE.equals(getAck()) || ACK_DATA.equals(getAck())) && getType().equals(PacketType.JSON); + } + + private boolean isEventAck() { + return ACK_DATA.equals(getAck()) && getType().equals(PacketType.EVENT); + } + public boolean isAck() { - return getId() != null && !ACK_DATA.equals(getAck()); + return getId() != null && (isEventAck() || isJsonAck()); } }