summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2012-11-28 16:34:40 +0000
committerRobert Godfrey <rgodfrey@apache.org>2012-11-28 16:34:40 +0000
commit5e439283c99363706a649b2a7cd92cd3b7f8a5ae (patch)
treef620ce048afccca49eb895bf986041c9e6387c77
parent0948c58f1b3a6489e6ea01779c1801bae6ef3546 (diff)
downloadqpid-python-5e439283c99363706a649b2a7cd92cd3b7f8a5ae.tar.gz
QPID-4472 : [Java Broker] NPE with non-SASL AMQP 1.0 Connection
merged from trunk r1413627, r1413724 git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.20@1414799 13f79535-47bb-0310-9956-ffa450edef68
-rwxr-xr-xqpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java2
-rwxr-xr-xqpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java6
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java26
3 files changed, 32 insertions, 2 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
index cb7680e9b6..c62f1b56f0 100755
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
@@ -329,7 +329,7 @@ public class MultiVersionProtocolEngine implements ServerProtocolEngine
public ServerProtocolEngine getProtocolEngine()
{
- return new ProtocolEngine_1_0_0(_appRegistry,_id);
+ return new ProtocolEngine_1_0_0(_network, _appRegistry,_id);
}
};
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java
index da70e497d6..b5110a21d8 100755
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java
@@ -97,10 +97,14 @@ public class ProtocolEngine_1_0_0 implements ServerProtocolEngine, FrameOutputHa
- public ProtocolEngine_1_0_0(final IApplicationRegistry appRegistry, long id)
+ public ProtocolEngine_1_0_0(final NetworkConnection networkDriver, final IApplicationRegistry appRegistry, long id)
{
_appRegistry = appRegistry;
_connectionId = id;
+ if(networkDriver != null)
+ {
+ setNetworkConnection(networkDriver, networkDriver.getSender());
+ }
}
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java
index 6081be8efd..e951dd494b 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java
@@ -20,12 +20,31 @@
*/
package org.apache.qpid.server.protocol;
+import java.util.UUID;
+import java.util.concurrent.ScheduledFuture;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.qpid.protocol.ServerProtocolEngine;
+import org.apache.qpid.server.binding.BindingFactory;
import org.apache.qpid.server.configuration.ServerConfiguration;
+import org.apache.qpid.server.configuration.VirtualHostConfiguration;
+import org.apache.qpid.server.connection.IConnectionRegistry;
+import org.apache.qpid.server.exchange.ExchangeFactory;
+import org.apache.qpid.server.exchange.ExchangeRegistry;
+import org.apache.qpid.server.protocol.v1_0.LinkRegistry;
+import org.apache.qpid.server.queue.QueueRegistry;
import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.registry.IApplicationRegistry;
+import org.apache.qpid.server.security.*;
+import org.apache.qpid.server.stats.StatisticsCounter;
+import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.txn.DtxRegistry;
import org.apache.qpid.server.util.TestApplicationRegistry;
+import org.apache.qpid.server.virtualhost.HouseKeepingTask;
+import org.apache.qpid.server.virtualhost.State;
+import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.server.virtualhost.VirtualHostImpl;
+import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
import org.apache.qpid.test.utils.QpidTestCase;
import org.apache.qpid.transport.TestNetworkConnection;
@@ -42,6 +61,12 @@ public class MultiVersionProtocolEngineFactoryTest extends QpidTestCase
//the factory needs a registry instance
ApplicationRegistry.initialise(new TestApplicationRegistry(new ServerConfiguration(new XMLConfiguration())));
+ // AMQP 1-0 connection needs default vhost to be present
+ VirtualHostRegistry virtualHostRegistry = ApplicationRegistry.getInstance().getVirtualHostRegistry();
+ VirtualHostImpl vhostImpl = new VirtualHostImpl(ApplicationRegistry.getInstance(), new VirtualHostConfiguration("default",new XMLConfiguration()));
+ virtualHostRegistry.registerVirtualHost(vhostImpl);
+ virtualHostRegistry.setDefaultVirtualHostName("default");
+
}
protected void tearDown()
@@ -160,6 +185,7 @@ public class MultiVersionProtocolEngineFactoryTest extends QpidTestCase
assertEquals("ID was not as expected following receipt of the AMQP version header", expectedID, engine.getConnectionId());
previousId = expectedID;
+ engine.closed();
}
}