summaryrefslogtreecommitdiff
path: root/qpid/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java34
1 files changed, 15 insertions, 19 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java
index 37e731206c..a4db16742a 100644
--- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/Assembler.java
@@ -20,13 +20,11 @@
*/
package org.apache.qpid.transport.network;
+import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.transport.codec.BBDecoder;
import org.apache.qpid.transport.Header;
import org.apache.qpid.transport.Method;
@@ -35,19 +33,16 @@ import org.apache.qpid.transport.ProtocolEvent;
import org.apache.qpid.transport.ProtocolHeader;
import org.apache.qpid.transport.Receiver;
import org.apache.qpid.transport.Struct;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.qpid.transport.codec.BBDecoder;
/**
* Assembler
*/
public class Assembler implements Receiver<NetworkEvent>, NetworkDelegate
{
- private static final Logger _log = LoggerFactory.getLogger(Assembler.class);
-
private final Receiver<ProtocolEvent> receiver;
- private final Map<Integer,List<Frame>> segments;
- private final Method[] incomplete;
+ private final Map<Integer, List<Frame>> segments;
+ private final Map<Integer, Method> incomplete;
private final ThreadLocal<BBDecoder> decoder = new ThreadLocal<BBDecoder>()
{
public BBDecoder initialValue()
@@ -59,8 +54,9 @@ public class Assembler implements Receiver<NetworkEvent>, NetworkDelegate
public Assembler(Receiver<ProtocolEvent> receiver)
{
this.receiver = receiver;
- segments = new HashMap<Integer,List<Frame>>();
- incomplete = new Method[64*1024];
+ segments = new HashMap<Integer, List<Frame>>();
+ incomplete = new HashMap<Integer, Method>();
+// incomplete = new Method[64*1024];
}
private int segmentKey(Frame frame)
@@ -102,12 +98,12 @@ public class Assembler implements Receiver<NetworkEvent>, NetworkDelegate
public void exception(Throwable t)
{
- this.receiver.exception(t);
+ receiver.exception(t);
}
public void closed()
{
- this.receiver.closed();
+ receiver.closed();
}
public void init(ProtocolHeader header)
@@ -188,7 +184,7 @@ public class Assembler implements Receiver<NetworkEvent>, NetworkDelegate
command.read(dec);
if (command.hasPayload())
{
- incomplete[channel] = command;
+ incomplete.put(channel, command);
}
else
{
@@ -196,8 +192,8 @@ public class Assembler implements Receiver<NetworkEvent>, NetworkDelegate
}
break;
case HEADER:
- command = incomplete[channel];
- List<Struct> structs = new ArrayList(2);
+ command = incomplete.get(channel);
+ List<Struct> structs = new ArrayList<Struct>(2);
while (dec.hasRemaining())
{
structs.add(dec.readStruct32());
@@ -205,14 +201,14 @@ public class Assembler implements Receiver<NetworkEvent>, NetworkDelegate
command.setHeader(new Header(structs));
if (frame.isLastSegment())
{
- incomplete[channel] = null;
+ incomplete.remove(channel);
emit(channel, command);
}
break;
case BODY:
- command = incomplete[channel];
+ command = incomplete.get(channel);
command.setBody(segment);
- incomplete[channel] = null;
+ incomplete.remove(channel);
emit(channel, command);
break;
default: