You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2011/02/04 17:14:47 UTC
svn commit: r1067208 - in /qpid/trunk/qpid/java:
broker/src/main/java/org/apache/qpid/server/transport/ common/
common/src/main/java/org/apache/qpid/transport/
Author: robbie
Date: Fri Feb 4 16:14:46 2011
New Revision: 1067208
URL: http://svn.apache.org/viewvc?rev=1067208&view=rev
Log:
QPID-3021: ensure the connection actor is used for connection control events regardless of a particular sessions existence
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
qpid/trunk/qpid/java/common/Composite.tpl
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java
Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java?rev=1067208&r1=1067207&r2=1067208&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java Fri Feb 4 16:14:46 2011
@@ -149,15 +149,23 @@ public class ServerConnection extends Co
@Override
public void received(ProtocolEvent event)
{
- ServerSession channel = (ServerSession) getSession(event.getChannel());
- LogActor channelActor = null;
-
- if (channel != null)
+ if (event.isConnectionControl())
+ {
+ CurrentActor.set(_actor);
+ }
+ else
{
- channelActor = channel.getLogActor();
+ ServerSession channel = (ServerSession) getSession(event.getChannel());
+ LogActor channelActor = null;
+
+ if (channel != null)
+ {
+ channelActor = channel.getLogActor();
+ }
+
+ CurrentActor.set(channelActor == null ? _actor : channelActor);
}
- CurrentActor.set(channelActor == null ? _actor : channelActor);
try
{
super.received(event);
Modified: qpid/trunk/qpid/java/common/Composite.tpl
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/Composite.tpl?rev=1067208&r1=1067207&r2=1067208&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/Composite.tpl (original)
+++ qpid/trunk/qpid/java/common/Composite.tpl Fri Feb 4 16:14:46 2011
@@ -44,6 +44,8 @@ cls = klass(type)["@name"]
segments = type["segments"]
+connectioncontrol="false"
+
if type.name in ("control", "command"):
base = "Method"
size = 0
@@ -54,6 +56,7 @@ if type.name in ("control", "command"):
payload = "false"
if type.name == "control" and cls == "connection":
track = "Frame.L1"
+ connectioncontrol="true"
elif cls == "session" and type["@name"] in ("attach", "attached", "detach", "detached"):
track = "Frame.L2"
elif type.name == "command":
@@ -100,6 +103,11 @@ public final class $name extends $base {
return $track;
}
+ public final boolean isConnectionControl()
+ {
+ return $connectioncontrol;
+ }
+
${
if pack > 0:
Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java?rev=1067208&r1=1067207&r2=1067208&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolError.java Fri Feb 4 16:14:46 2011
@@ -60,6 +60,11 @@ public final class ProtocolError impleme
return track;
}
+ public boolean isConnectionControl()
+ {
+ return false;
+ }
+
public String getMessage()
{
return String.format(format, args);
Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java?rev=1067208&r1=1067207&r2=1067208&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolEvent.java Fri Feb 4 16:14:46 2011
@@ -37,4 +37,5 @@ public interface ProtocolEvent
<C> void delegate(C context, ProtocolDelegate<C> delegate);
+ boolean isConnectionControl();
}
Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java?rev=1067208&r1=1067207&r2=1067208&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ProtocolHeader.java Fri Feb 4 16:14:46 2011
@@ -88,6 +88,11 @@ public final class ProtocolHeader implem
return Frame.L1;
}
+ public boolean isConnectionControl()
+ {
+ return false;
+ }
+
public ByteBuffer toByteBuffer()
{
ByteBuffer buf = ByteBuffer.allocate(8);
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org